There are many purposes:
1, Saving space
2. You can tool around with a different operating systems and if something goes wrong you did not hurt anything.
3. Being able to run programs that do not work on your operating system
4. Testing programs which may be used on different operating systems.
5. Virtual networks
6. Can run multiple platforms with your different operating systems
I am sure there are even more uses than what I have listed here. I have used it as an education tool more than anything.