What is the purpose and idea behind baking in Blender?
In computer graphics, baking generally refers recording calculated information in some kind of cache, to avoid the need to keep recomputing it. 

For materials and rendering specifically, it refers to recording various kinds of surface information (e.g. colour, lighting, normals) into image file(s), which are then used as textures of various kinds. 

It can be done for a many different reasons, some of the more common uses are:


Transfer surface geometry information (e.g. normals, curvature, ambient occlusion) from one (usually more complex) mesh to another
Transfer textures form one UV layout (possibly generated) to another.
Record procedurally generated textures either for export to another program or for performance reasons.
Save lighting information on static parts of the scene to speed up rendering.