All of the host your code/webapp/whatever. The difference is to the level of control you have on the underlying box. For example, DO and AWS will give you SSH root access for a Linux box. Heroku and Google App Engine limit your access and you have a set of command line tools / web interfaces through which you tweak setting while they automate everything on the background. That said, Heroku /does/ host your app and that's why you're paying them :)
Again, it comes down to what sort of control you need over the infrastructure that your app runs on. It's completely personal preference whether you choose to worry for nothing but your code or have fine-grained access to the last detail on your server. Give them a spin, most of them offer some sort of trial.