Tim posted about the shape of the could and makes an excellent point regarding the barrier to entry. The essence is that we haven't quite found the sweet spot for deploying apps to the cloud. This is very true in that the dependence on traditional databases and relatively complex environments make something like dropping a Pylons app on some random service pretty troublesome.
I would imagine there will be two progressions that will allow deployment on the cloud become mainstream. The first is languages will create a simple way to wrap up an application with all its libraries, much like a desktop application. The second is that cloud service providers will change from supporting a language or virtual machine to supporting a process. The idea is that if I can take my web app, zip it up and throw it on their server with a simple bash script they can monitor and scale by adding more processes, then it seems feasible we might see could computing environments that are essentially like the current wealth of shared hosting services.
Google's App Engine gets pretty close, but it locks you in. Amazon has been also moving closer by adding its block mounting support, but still things are just too complicated. The ideal first step is a hosting company like WebFaction. They specialized in Python/Ruby hosting and have made putting up a Django or Rails app simple. Being able to start small is going to be the killer feature of the next generation cloud platforms. We are not there yet, but folks seem to be quickly narrowing in on hitting that sweet spot.