The only way AWS is theoretically cheaper (and even then I find the argument a bit of a stretch) is if you factor in "sysadmin costs". The argument goes that setting up and monitoring your own servers (especially if you go colo rather than renting) is more costly in terms of labour than point and clicking it with AWS.
If you strip the labour cost out of the equation, hosting it yourself can be up to an order of magnitude cheaper. Of course stripping the labour cost out is only possible if you can do it yourself :)
In my case, I can (as could maciej of pinboard.in fame).
Edit: also helps if you can find a well priced data centre or two. For me, I'm planning on going with hetzner.de and ovh.net