Virtualization stems from two aspects of information technology: cheap hardware, and the desire to isolate environments. Until recently, the only option was a new computer or make you system boot into the desired environment. Virtualization allows a computer to 'run' multiple computers. It's like a box in a box. The 'virtual' machines run on a 'physical' machine. Normally we take a powerful system, load an operating system. Then we use software to create virtual computers.
Sandbox Environments
We often desire to 'sandbox' computers to prevent bad effects of one system from effecting everything else. Originally this was complicated an experimental at best. Today, we use virtualization to accomplish this goal. An example would include wanting to seperate web server / email server from the accounting / file server. We do this so if the public website is hacked, your files and financial data are not at immediate risk.
Abstraction from Hardware
Another benefit of virtualization is abstracting the system from hardware. A big problem has been that when hardware failed, the software had to be reloaded. This is because computer software is designed to interact directly with the hardware making the software dependent on the hardware. Virtualization solves this by making the system dependent on the virtualization implementation. When the hardware dies, we just have to copy to virtual machine to new hardware.
Better Resource Utilization
As computers become more powerful, we notice that the average workload on a server is decreasing. Virtualization allows us to reach higher sustained workloads on machines without necessarily compromising performance. The objective to this would be to match a CPU intensive envioment with a disk intensive enviorment. Assuming neither needs 100%, the loads should average out to better utilization of one machine.