Libraries are a collection of classes and functions that can complete calculations and functions by initialising/calling them. They are used by including the dll file of this library in a project. DLL stands for Dynamic Link Library and can be included in project for ease of use of the libraries classes and functions. But dll files are not always the case, as it is possible to manually include these files from their source. A good example of library usages are Physics Engines. Physics engines include classes and functions for simulating physical objects that react to gravity and collisions with other objects. So, if you were to create a program that would use (at some point) a physics simulation, then a physics library would be used. Or, in some cases, the developer can make his own Physics Engine for his/her program (the same goes for all types of libraries). A different example would be a Graphics Library. If you didn't know how to generate your own graphics, or just thought it would be too much work, a Graphics Library would do it all for you. The classes and functions in a Graphics Library can be called and initialized to draw graphics on the screen. Other words for libraries include packages, engines, and collections. There is a great wikipedia article about this at http://en.wikipedia.org/wiki/Library_(computing) .
The explanation above is still perfectly valid, I would think. It's just that an #include just has information about what the library contains so you can use it in your code without the compiler complaining. The linker is what actually brings in the library code itself.
Yes, `#include <iostream>` will point to the iostream header file. The linker can pull in the library, like Zhuge said. For example, in Dev-C++, you can add a library through tools->compiler options->directories->libraries, then browse for the library directory. Usually, in libraries, there is a `lib` folder and an `include` folder. The `lib` folder contains all the files for that library, so in Dev-Cpp you would add that directory, whilst the `include` folder contains all the header files (eg. `iostream.h`), hence the name `include`.