Ok so i changed my question to make it more clear. If I have a social networking site with 1000 users online at the same time what would be a better solution. A dedicated server with one box? or a cluster virtual dedicated server on a cluster? Which one is actually better? I feel like the hosting business writes too many articles that are misguiding people. So what would be a step before cloud computing?
The first thing I would do is split the DB off onto its own server, You say your code wont "scale". I can tell you from countless years of scaling the un-scalable that you're wrong.
You can move the DB off onto its own server, and then if it's still an issue you can add MySQL replication and use MySQL Proxy to drive read requests to the slaves and write requests to the master.
To scale front end you can add more web servers, if it is using on-disk sessions then you can use sticky load balancing. If the problem is that of uploaded media then you can use NFS.
It all really depends on what is at the core of your pain.
As I say I have been doing this for years and I have found very few applications that require any code changes in order to realize instant performance gains.