I just found a groovy little open source program that now has me addicted. It's called SweetHome3D and it's basically a little java package that lets you create and decorate rooms or entire homes.
I know there are comercial programs that have better graphics and a broader choice of colours and textures, but this is fine as a starting point. The controls take a little getting used to but once you do you'll find it pretty easy to come up with something quite quickly.
I'm guessing it has many practical uses. Lets say you're bored with your current living room plan and you want to shift things about a bit but dont want to move it all if it's going to look crap. This program lets you put in exact dimensions of things, so you can see how it looks before you start on the back-breaking sofa relocations.
Or if you're like me, you can just use it to create dream rooms. I've been mucking about with some ideas for a craft space. It's not something we could have in this little apartment, but one day soon my husband and I are hoping to get a house in the countryside somewhere. So I can dream :P