Juan Treminio has a recent post to his blog showing the complete steps you'll need to get a virtual machine up and running (using VirtualBox and a Ubuntu Seerver install), complete with PHP, MySQL, Samba and Apache.
Recently on r/php there was a thread asking users about their development environments. The usual answers came tumbling out - mostly about IDEs and methods for uploading their code (side note: FTP is a horrible way to do this!). Out of 144 responses, I noticed that very few mentioned virtual machines. Most that said anything about operating systems or platforms made it clear they were developing on their local machine, with no separation between their everyday driver and their development environment. This has got to stop, especially amongst PHP developers where we have tools like XAMPP that require nothing more than a simple zip extract to get up and running with your own "server".
He walks you through the entire process, complete with screenshots and commands ready for copy & paste, to get your virtual machine server set up and working. The PHP install includes things like cURL, memcache, internationalization, GD and MySQL support. He also helps you get other tools like XDebug and PHPUnit installed.
This is definitely one of the more complete examples I've see of getting a VM set up and ready for development - if you've been wanting to try it out, I'd recommend this guide.