To really make use of the cloud, don't put traditional apps on it. It is not designed to run things like MS Exchange.
If you work in a software development shop, especially a web app, then cloud is awesome. Think of cloud as an API. That is where the real power is!
We have a continuous integration and continuous delivery pipeline. The entire deployment is described in software using Amazon's API. We abstract our infrastructure as code so we can replace it with Openstack if we need to. Amazon's API far ahead of anything else out there, so right now we don't really need to switch. This system is extremely powerful. We can bring up entire testing environments the the execution of a script. In system configuration is driven with Chef, but even some of those scripts use the Amazon API to help discover information about the environment.
VMWare provides some of the features, but nothing like Amazon offers. VMWare is also designed for a traditional IT cycle where you can about running a VM for more than a year. Cloud thinking makes more using of disposable nodes. A machine may not last a month because it is replaced with an entirely new image.
So, IF you write software correctly, having an in-house cloud API is extremely useful. Having a cloud API that a standard is also very useful. Start small with a public provider (Rackspace), then bring in-house as the business grows (RedHat Openstack). When the business needs somethings more elastic, that same API can be used with third party providers to supply the computing when it is demanded (Rackspace).
Cloud API's are new. Give it time.