EC2 is bare Linux; you install apache/passenger/REE/memcached/postgres/etc/etc/etc. If you want to scale past one server, you're on your own there. You take care of backups, security, system monitoring, etc.
Heroku is a platform that abstracts you from these things. You just push out your app, tweak a dial or two on your Settings page, and they take care of everything else for you.
If you want CPU-by-the-hour, go with EC2. If you want to host a Rails app, go with Heroku.
Edit: this guy shouldn't be downvoted. He asked an honest question (what's the difference between Heroku and AWS) - unless I'm missing something, he isn't trolling. No need to vote him down.