Well, lets’ start by making the distinction between what was the original idea and what is the people doing now.
Originally Web Services were thought to share information between applications. The applications can be develop in different technologies and can also belong to different companies. For two applications to be able to share information they must agreed two things: the format the information will be structured and the way (transport) the information will be sent/arrived.
This problem is not new. As you can imagine before the raised of Web Services there were some attempts to solve this problem (like EDI and CORBA) but none of them were successful (unless in terms of industry adoption).
Web Services result to be a good solution and the development tools started to provide very useful features to work with them. Then developers started to use Web Services for some other scenarios like communication between the presentation layer and the business layer. But in most cases these two layers belong to the same application and are developed with the same technology, so it could be better to use some other protocols (like REST, netTcp or RMI) to obtain a better performance.