Yeah. You can get managed hardware (for example at Soft Layer) for a much better price/performance ratio than EC2. The upfront costs are higher but the price for equivalent hardware is way cheaper.
I think EC2 makes total sense for variable load (I paid like $0.25 to run some Coursera homework on a huge computer for 15 minutes and that was amazing) but if you're running something that needs to be up constantly and reliably (e.g., a database) EC2 gets expensive pretty fast.