I am a Heroku fan. Some things for you to consider:
1) The real value of Heroku is time savings. Their deployment mechanism is near instant, so your savings come from the time you are spending doing more development, rather than managing servers. If you wanted to hire an ops person, that's a cost savings.<p>2) Scalability. As your system grows, Heroku manages architecture choices necessary for scaling all parts of your app. This is at the dyno web tier and database tier. But it also includes choices around architecting add-ons. For example, if you wanted to include their memcache add-on and you had multiple apps, should you create multiple memcache instances or one large grid? That sort of choice is handled behind the scenes.<p>3) Add-Ons. They handle configuration, billing, and setup of any add-ons you might need. Biggest savings is not having to research all of them to figure out which ones are stable, viable, functional.<p>4) Cheap to get started. You can deploy new apps for free, and migrate your code elsewhere if needed.<p>5) Their polyglot strategy is interesting, and they are pushing the envelope with beta implementations around nosql data stores. There is a nice polyglot post on their blog.<p>6) There is some performance advantages of using some of their add-ons. Because Heroku is deployed on EC2, and many of the add-ons are also on EC2, the integrated performance can be higher. EC2 ping rates are faster than gigabit ethernet in some cases.<p>7) Creating identical environments. If you manage your own servers and you need to create staging, QA, or development servers, you'd have to create those manually and they'd be close, but not identical because there is different hardware involved. In debugging scenarios, being able to clone a whole app environment has some advantages.<p>Good luck in your endeavor.