1) Run on dedicated hardware.
2) Run on EC2, or another "Infrastructure as a Service" provider.
3) Run on Heroku, or another "Platform as a Service" provider.
For smaller companies, it really comes down to a few questions: Who's worrying about your database backups? Who handles security patches? What happens when a critical machine fails on Christmas week?
Many smaller companies will be happiest with option (3), because somebody else worries about backups, security, and machine failure for you. Sure, it's expensive. But it's a lot nicer than calling your senior programmer back from vacation because of a catastrophic RAID failure.
Option (1) certainly looks cheaper on paper. But many small companies are skimping on something critical, and they'll get burnt within the next 5 years.