Given the increasingly complex world of web development, there’s more to creating a website than just using a text editor and a browser. If you have to support multiple customers, possibly each with their hosting arrangements, it’s unlikely that your development machine will wholly reflect the setup of each host, and there might be conflicting software requirements (e.g. differing versions of PHP or Ruby, Apache, or perhaps security arrangements).
Virtual machines, which allow guest operating systems to run on top of a native operating system - such as Windows on Mac OS X, provide a relatively straightforward way of setting up dedicated development environments for each of your customers.
This deck outlines two particular tools which make this incredibly easy.