A VPS (Virtual Private Server) hosting divides a normal web server into multiple virtual servers, where each of this virtual server act like a dedicated server, but actually each of these VPS are sharing a single server and its hardware. Each VPS customer can have root access to his own virtual server and host his own website, domains, applications with full its own copy of and control on the operating system, installed software etc.
Functionally, a VPS is very similar to a dedicated physical server, but with a lower performance because in a VPS the underlying physical hardware of the server is being shared with other VPSs.
VPS hosting is suitable for those businesses or individuals who want a better control over their servers, need better performance than a normal shared hosting but don’t want to invest in dedicated servers.
VPS is better than shared primarily because in a VPS you have more control and power in comparison to shared hosting. For example a shared hosting can disallow a particular installation as it affects all customers sharing that server. In a VPS there is no such restrictions.
In terms of cost, VPS pricing lies between a shared hosting and a dedicated server pricing. However these days many low cost VPS hosting providers are offering managed and unmanaged VPS hosting in prices very similar ( and in some case even lower ) than a normal shared hosting.