I actually hate the Cloud buzzword. But a word is needed to describe the whole world of ideas and problems that developing and deploying towards a SOA over the internet is needed.
This webinar http://www.infoq.com/presentations/Grails-in-the-Cloud helps to understand all this universe. It does it with the Grails excuse, but it is much more generic, and for this reason, useful.
The first useful concept it explains is the definition of PaaS and in which way it decouples from the generic infrastructure (virtualization) cloud.
I like to define the PaaS concept as a 2nd level virtualization. You are yes working in a virtual environment, but you are further from the virtual machine. You are just required to be aware to services exposed to you: a database, a web container or whatever. You are not responsible to install an operating system in a virtual machine, and on top of that install you typical services. They are already there for you. You can consider yourself nearer to you business problem.
And on the other side, the fact that you are no longer the one responsible of setting up all the services will benefit of all those people that are actually good at doing this task. In fact a good idea that they had is at the moment present in Cloudbees: a multi stages development environment that offers you both a production context and a development context, with the possibility to promote stuff from development to production. It is an implementation of "Continuous Deployment".