The term Cloud Computing seems to be poorly defined at the moment, as an example the Wikipedia page about it is rather incoherent .
The one area in which all definitions of the term agree is that a service is provided by a varying number of servers of which the details are unknown to the people who use the services – including the people who program them.
There seem to be four main definitions of cloud computing. The first one is Distributed Computing  (multiple machines in different administrative domains being used to perform a single task or several tasks), this definition does not seem to be well accepted and will probably disappear.
The next one is Software As A Service  which is usually based on the concept of outsourcing the ownership and management of some software and accessing it over the Internet. An example is the companies that offer outsourced management of mail servers that are compatible with MS Exchange (a notoriously difficult system to manage). For an annual fee per email address you can have someone else run an Exchange compatible mail server which can talk to Blackberries etc. The main benefit of SAAS is that it saves the risk and expense of managing the software, having the software deployed at a central location is merely a way of providing further cost reductions (some companies that offer SAAS services will also install the software on your servers at greater expense).
The last two definitions are the ones that I consider the most interesting, that is virtual machines (also known as Cloud Infrastructure ) and virtual hosting of applications (also known as Cloud Platforms ). The Amazon EC2 (Elastic Cloud Computing) service  seems to be the leading virtual machine cloud service at the moment. Google App Engine  seems to be the leading cloud application hosting service at the moment.
It is also claimed that “Cloud Storage” is part of cloud computing. It seems to me that storing data on servers all over the world is something that was done long before the term “Cloud Computing” was invented, so I don’t think it’s deserving of the term.
-  http://en.wikipedia.org/wiki/Cloud_computing
-  http://en.wikipedia.org/wiki/Distributed_computing
-  http://en.wikipedia.org/wiki/Software_as_a_service
-  http://en.wikipedia.org/wiki/Category:Cloud_infrastructure
-  http://en.wikipedia.org/wiki/Category:Cloud_platforms
-  http://etbe.coker.com.au/2008/10/04/getting-started-with-amazon-ec2/
-  http://en.wikipedia.org/wiki/Google_App_Engine