When one is just starting out, be it as a start-up company with a great new web application, a small business with a mostly static website, or even a shared hosting company, chances are a dedicated server is not needed right off the bat. Most VPS accounts will provide root access to install whatever is necessary for a web application and most shared or reseller accounts will provide all of the necessary tools to create a static web site and/or sell shared hosting accounts.
So when is a dedicated server necessary? Well, there are a couple obvious situations, and at least one that is not so obvious:
1. A site has gone beyond the resource limits of the shared hosting account.
This is one of the obvious times when someone needs to upgrade. If someone's business exploded quickly and their shared accounts were overwhelmed because they had not planned on such growth. Every shared hosting account, no matter how "unlimited" will have resource limits that one's site cannot breach on a regular basis. Generally, this is the reason for the "account suspended" pages one so often sees when browsing reddit, Digg, Slashdot, etc.
2. A web application has come out of beta and been opened up to the general public.
This is another obvious time to upgrade. Depending on the application, a VPS could handle the load while the app is in the testing phase, but once it is open to the public and starts to become more popular at least one dedicated server is going to be the way to go. Twitter is a good example of this, they started very small and have grown exponentially in recent months. Their infrastructure has not been able to keep up and has resulted in regular service outages.
This may sound like a no-brainer, but it is often overlooked.Ă‚Â Hosting with a shared hosting account can lead to stability problems. It's pretty simple: if one account is abusing the server resources, all the accounts on the machine suffer; similarly, if one account is being used to send spam and the server's IPs are blacklisted, everyone suffers. I have heard horror stories of middle-of-the-day shared server upgrades that brought down hundreds of websites and then required a file system check when bring the server back online, and obviously caused hours of downtime during business hours. Even if a website is just a few informational HTML pages with some images, stability is a compelling argument for hosting it on a dedicated server.
There are of course many other reasons for upgrading to a dedicated server, but I think these three are some of the most common. Feel free to suggest any others in the comments.