The way I look at it is if all these services were free, EC2 would win based upon features. So, the question is, does cost matter?
For us, a single engineer's salary costs more than our entire yearly EC2 bill. And, we're not even using cost saving measures like elasticity and reserved instances.
And, EC2 actually drives costs down in ways hosting does not. First, as you mentioned, it dramatically reduces the need for IT staff. (Though it doesn't eliminate it, of course.)
Second, and IMHO, more importantly, the constraints EC2 imposes on you forces you to build fault tolerant, shared-nothing systems. I'm sure many folks here have worked at companies with hosted servers to find machines that are chock full of random cron jobs, services, and so on. The instant provisioning capability of EC2 combined with the constraints makes it very hard for you to have these one off "god boxes" your system is hinging on. Beyond that, as things get too messy, you have the freedom to automate and shut-down and bring up fresh nodes instantly with no increase in cost. It's hard to me to estimate the amount of man-hours we've saved and disasters we've avoided due to this capability. It's allowed us to cleanly "refactor" our entire cluster over time since we can reprovision nodes on demand as we improve the services or architecture on those nodes.