Virtual machines allow you to have (almost) fully functional computers without having to pay for several computers.
Virtual machines allows developers to test potentially buggy software on a variety of different operating systems without having to worry about crashing the host system. It is easy to "delete" a virtual computer and recreate new one. If you have saved a copy of the original one, you can restore from original copy.
You can create a virtual machine, install operating system, install all prerequisite software and then make a backup copy of the virtual machine hard disk image. Anytime you want to restore or recreate the original state of a virtual machine, simply restore from this file.
In a software development environment, the testing team can install several operating systems in different virtual machines and test the software in each environment.
For a product development company, it is useful to have different versions of the product installed in different virtual machines for testing and customer support purpose.