There are various solutions and to an extent it depends on whether you wish to run OSX and Windows at the same time (therefore not BootCamp) and how true to a PC the virtual machine has to be (drivers, hardware compatibility etc). I use Parallels, mainly because it was the best one for what I wanted when I chose it.