We have a bunch of "clean" machines that we can re-image with any of our supported OS's as needed. We also have a couple multi-boot computers (that can also be re-imaged when needed). We have enough computers that each tester can have at least one computer with each supported OS at any time.
We have VMWare but it's become shelfware (an old QA manager demanded it and then never implemented it). I did some investigation and it was a bit too risky to use with our type of app (p2p) but I've heard nothing but good things in terms of web-testing with it. My old job didn't use it because it wouldn't support different types of file systems on the same computer - however, don't know if they had the wrong info or VMware improved - this was not an issue in the version I looked into.
We basically have a bunch of machines and we use VNC on each of them to be able to connect. Each machine had a ghostable drive. VMWare's okay but its too bloated and offends my sensibilities. The problem is often finding enough machines to have the browser configurations on but you can always install multiple operating systems if you've got the hankering and the patience to do it.