I have two systems in production on Heroku (1 Dyno, 6 Dynos respectively), and I am about to launch a pretty significant project using the platform.
I absolutely love it.
I want to focus on the value I provide in the chain - a carefully crafted application, with great user experience and great support.
The real value of Heroku is that all of the administration overhead is removed.
I have previously worked with VPS hosting (Slicehost, Linode) and found that tuning a single application stack can be really quite complicated without a dedicated sysadmin resource. Once you start getting into the realm of multiple servers you can find yourself mired in system administration and not application development and support.
Heroku provide a stack that includes a reverse proxy and http cache on top of the actual Rails app process management ... setting all of this up within a VPS environment would be quite a serious and expensive undertaking.
If a sysadmin resource is $100/hour and a dyno is $36/month, you can go a long way throwing dynos at your application before the cost-benefit starts to change.
Storage prices have also just changed - you now get 20gb of shared database resource for $15/month which really changes the game for many smaller applications.
Memory is no longer something you have to worry about ... a dyno seems to automatically have enough memory to run. Which makes sense - Thin, Mongrel, Passenger all load the Rails application instance into memory, making the memory resourcing requirements quite predictable (outside of memory leaks, of course). With Heroku, if there is a problem with an instance, it is simply shut down and a new one started - all of which happens transparently.
The other big BIG win for me is that that Heroku's routing mechanism ensures a nearly linear response ... if a request takes 100ms to process, your throughout will essentially be 10 requests/second. The Heroku routing mesh ensures your processes don't get overloaded within reasonable load limits (if you get truly hammered you will need to add resources, but short-term burst loads seem to be handled quite well).
On my current project, I have performance tested each major feature as it has been built to get a feel for the overall performance of the system, and the stack itself pretty much flies - untuned read-heavy requests in my app average sub-50ms response times (single dyno, shared database).
I am yet to hit a bottleneck in the platform itself.
All of this said, the underlying assumption with Heroku is that you have a "vanilla" rails application - database, CRUD app, etc etc. Some things simply aren't possible on Heroku.
There is a certain point in scale where running your own servers (particularly outside a virtualised stack) becomes much more cost effective (GitHub's recent move from EngineYard to RackSpace highlights this point).
As mentioned by @theIV, the best thing to do is try it and see. It is very easy to setup an app, and there are no architectural changes required (apart from not using the local filesystem (not a problem for me as I always push user-generated files to Amazon S3). The basic NewRelic RPM Add-On is free, so you can get instant insight into your app performance.