I use WAMPServer and a series of test installs. Typically I'll have one clean install of the current version plus one install that was upgraded from the previous version to the current version (for working through upgrade bugs). Populating test installs is as easy as using the WP Candy sample content mentioned earlier, then adding a few "typical" posts of your own to it.

I also tend to have at least one instance going that is for some ongoing project such as an ebook or tutorial series that I'm working on.

I never test themes or plugins on my live sites before trying them on a test site first.