You've been given the answers of the actual difference between and shared and VPS account so I'll approach this question from another angle, the user (you).
If you're starting on a website you should generally consider a shared hosting account at first. The exception is if you specifically require something (a non-supported module for example) on the server that your host doesn't support. This is very rare though, for most shared would do fine (Think WordPress, Joomla, forum softwares, HTML sites and so on).
In a shared environment, each account is limited in terms of resources (CPU usage, ram etc). Once you're nearing these resource limitations you should consider a VPS server with enough of these resources to keep your site running smoothly (These can be upgraded on a VPS but not on a shared environment to prevent overloading the server). As your site grows (and thus your resource usage does) you can then keep upgrading your VPS (if your host allows it) and/or upgrade to a dedicated server.