Pros
- Very low effort to get running
- Easily extensible to add very powerful features eg. I added memcache and caching to one of our apps and had it live within 30mins
- Less downtime stress (if shit fails, you know heroku is dealing with it and you don't have to do much other than respond to customers)
- Very little platform lockin (unlike Google App Engine)
- Standing on shoulders of giants
- Strong app segmentation = stability
- Easy to price for clients
Cons
- Can get expensive quickly
- One of our work apps costs ~$1000 a month
- Free tier can take up to 20s to respond to a request (it spins down the server when it is out of use)
- Can't do much if Heroku goes down (well, you're meant to have a backup server and use DNS to switch if shit goes sour, but I can't imagine anyone bothering with this)
If you want any help/tips I have a lot of experience with the platform. I really really like it. Beats the pants out of running your own server(s).