To the average home user that only watches youtube, obsesses over twitter & facebook, and plays a few games, it is not very useful. However, it does has some useful purposes for power users and servers.
For example, lets say a developer wants to develop a set of client/server apps that runs on a windows desktop but on a Linux server. Without any type of virtualization,the developer would need at least two computers to test the system. Not only that, but the developer would have to transfer the data to a remote system every time he/she made changes to the software for the other system. With virualization, the developer can save money by avoiding the use of a second system. Instead he/she can just run a Windows (or Linux) based computer with virtual machine that runs the other OS. This also can make the transfer of data between systems easier and quicker.
Another use is security and safety. Lets say you are toying with some programs that could potentially screw up a computer's configuration. By running it in a virtual machine, you can create a sandbox or an extra layer of security.... it may mess up the configuration of the virtual machine, but it will not crash your host system.
Another use is the ease of the restoration of a configuration and the ability to rapidly deploy multiple setup's with identical configurations. Since virtual machines have virtual hard drives that are really just a file on the the host system, one can make a copy of the virtual system when they get it in a configuration they like. Then, when the administrator want to deploy another virtual machine (such as a server) with an identical configuration, he just needs to tell the virtual machine software to run off the copied file. Also, restoration is similar because it just means replacing a file with a backup.
Also, it is useful for situations that require servers that run many different types of systems, but do not get used heavily. What is more cost effective... Case 1: You buy many mid level servers and configure each one to fit your needs. Then you must pay for all of their power consumption needs and their maintenance costs. Case 2: You buy 1 mid level or high end server. Then you run multiple virtual servers on it. You only have to pay for the power costs and maintenance costs of one system. If each server only handles a relatively small processing load at any given time, then buying many extra systems would be a tremendous waste of resources and money because a single server could handle multiple virtual machines at that processing level. Many web hosting services do things like this.
Finally, you have to consider things like server uptime and reliability. If you run 1 virtual machine across multiple physical systems, then you could have a hardware failure on one of the physical servers, but the other server would be able to continue carrying the virtual machine without interruption.... so the server's clients would not notice any change while the system administrators are running around in panic :)