This article pretty much reflects my experience with EC2. EC2 makes it very easy way to get started with things when you're figuring stuff out and don't have a great deal of experience in managing servers and machines. You don't have to deal with RAID, power outages, etc. and can literally treat hardware like software.
But once you get up and running, you will realize that this comes with a great cost. EC2 absolutely sucks in terms of raw performance. I also notice variation in performance of machines on different times of the day, and between machines.
Amazon has done a great job at selling "the cloud", and I can see many CXOs buying into that. But the fact is, renting dedicated machines from a good provider isn't exactly that hard. They take care of a lot of things for you.
EC2 is good if you have wildly varying amounts of traffic such that you need to really have that kind of elasticity in your infrastructure. However, for most businesses, especially web apps, that's not the case.