To be fair, DotCloud offers much more flexibility than Heroku. With DotCloud you can mix and match different stack components. Currently in beta: Java, PHP, PostgreSQL, Python, Redis, Ruby, and SMTP. Plus there are tons of others in alpha, including more esoteric stuff like Erlang. DotCloud also supports any type of version control.
Heroku does Rails apps using Git, and thats it.
The tradeoff is flexibility vs. complexity.