I have been doing all of my development activities in a virtualized environment for quite some time. Programming for Microsoft SharePoint Server almost certainly requires a virtual machine but I have come to know that using one is convenient regardless of the target platform. Virtualization makes it easier to do backups and to hand over my work to another developer if need be.
When I had to do a project targeting Windows Phone 8, I found out that the system requirements for building a developer environment requested a dedicated host machine in order to successfully run the Windows Phone 8 emulator which is a virtual machine on Hyper-V itself.
Unhappy as I was with this requirement, I searched for workarounds and I found here a complete dummy-level detailed article on how to build and configure a virtual machine for developing Windows Phone 8 apps. Almost all steps are quite trivial for someone dealing with virtualization on a daily basis so I will just summarize the main caveats.