I get a Hetzner box that I know will probably last me for the lifetime of the app. If it doesn't, and I actually have ten million users, I have a good problem, and will study how to overcome it at that point.
I think I don't need the cloud until I need a fourth dedicated server. That sounds like a good rule of thumb. It also depends on your growth rate, if it looks like another server will last me another five years, why pick a cloud offering?
I think that EC2/dotcloud/etc are pretty close to the metal anyway, it seems to me that you get the high prices with fewer benefits. Can someone tell me what the advantage of EC2 is, given that each dedicated server has 32 GB RAM and no contention, and that EBS is known to be really flaky?