First let me say that, if it is not obvious already, this is not a one-size-fits-all world. As businesses tackle the next buzzword concept, it is very important to keep that in mind. One great was outsourcing, which is great for lots of situations, but definitely not all. Now the cloud.
I was asked to ignore all "business problems" and evaluate moving all servers my department runs in the cloud. It was going to cost twice what it currently costs us in terms of costs like equipment replacement and support contracts. Running servers in the cloud is great if you are small and it helps you avoid hiring your first systems administration team, and it is great if you are huge and need help not buying equipment for rare peaks of capacity utilization, especially if you also have to buy equipment for a DR site for those peaks as well.
As far as SaaS goes, it is a clear winner for many cases. If you do not need to run a local email system, sure, outsource it to a "cloud provider". Salesforce CRM and more can be great instead of running it yourself. Examining every service you run and seeing if it could be more effectively run by others is a sensible thing to do. Sometimes software makers move to a hosted model that is more effective.
Running your own "local cloud" can be effective too, assuming you have appropriate control of and planning for your infrastructure. Moving into server or desktop virtualization when you may not have the network bandwidth or central storage IO to handle it is a disaster.
As always, if you do what makes sense, things go well. Do things because "they are the hot thing to do" rarely goes well for anyone.