Cloud Computing can be extremely useful in particular situations, but like many new technologies, it often gets over-adopted, and deployed in situations where it's either not appropriate or downright detrimental.
The classic case for Cloud Computing (which is still a good application of Cloud today) is the case of a start-up company. In the simplest case, a new company needs a web site to advertise their business. Purchasing a server for a simple web site will cost several thousand dollars, and there's additional cost for network bandwidth, and support staff to maintain the server. In contrast, a virtual machine on Amazon Web Services (AWS) can be brought up with no capital investment and extremely low operating costs (in fact, at Amazon's lowest level offering, your virtual machine can be free for the first year). Although you still need staff to support the software on the machine, all hardware and network maintenance is provided by Amazon. Furthermore, this is a pay-as-you-go service, so you can shut your machine down and incur no additional charges.
A similar case can be made for established businesses that need single-purpose servers that are outside their business domain, or that may have different reliability or bandwidth requirements. For example, if you run a web server company you probably want to host your own web site. If you run a manufacturing business, your experience is probably more with the computers and related hardware that run your factory floor than with web servers. You can let a web company worry about the hardware maintenance of your web server, and have your IT staff focus on the manufacturing core of your business. The cloud companies typically have better bandwidth than most individual businesses, so they're a good option for customer facing services where response time is critical. Accordingly, it saves bandwidth on the company network for normal company operations.
Beyond small business cases, cloud can be used by larger organizations for burst capacity. If you run an HPC environment