The Berkeley RAD Lab (UC Berkeley Reliable Adaptive Distributed Systems Laboratory) has written a paper that defines cloud computing, and it's a must-read, says O'Reilly Radar.
A quick excerpt from the paper: "The services themselves have long been referred to as Software as a Service (SaaS). The datacenter hardware and software is what we will call a Cloud. When a Cloud is made available in a pay-as-you-go manner to the general public, we call it a Public Cloud; the service being sold is Utility Computing. We use the term Private Cloud to refer to internal datacenters of a business or other organization, not made available to the general public. Thus, Cloud Computing is the sum of SaaS and Utility Computing, but does not include Private Clouds."
The article also compares the services of Amazon EC2 to the high-level, Web-based Google App Engine, and checks into some of the obstacles for offering the service.