The way I see it, EC2 is ideally suited for scaling up your app. You can easily bring up or shut down instances, increase your EBS storage as your data grows, etc. But setting up a stable hosting environment on EC2 tends to be both more involved as well as more expensive than a VPS, for example.
Another good use case for EC2 is when you just want to play with something for a couple days (or even hours), without committing to a whole month. But again, if it's something more complex, you end up spending a fair amount of time setting things up.
If your Rails or Sinatra app is fairly straightforward (i.e. doesn't require any custom daemon apps or anything like that), I would actually suggest looking at Heroku. You can get started for free, so it's a great platform for experimenting with new ideas. Once you need more resources, you have the option of sticking with Heroku (at a slight premium, but then again you don't have to worry about any system administration), or moving to a VPS or EC2 setup.
Otherwise, I've had great success with VPS based environments like Slicehost and Webbynode (heard good things about Linode as well). These typically start at $15-$20/month and generally have a way for you to scale up by moving to larger slices or adding new slices (which you can generally clone from your existing ones). Not as powerful as Amazon's AMIs, but convenient enough for smaller setups (I'd say 1-10 slices).
Of course the story is different if you also want to take advantage of other AWS services, such as SQS or even SimpleDB.