As to what cohomology actually measures, I think a general theme is "the failure of locally trivial things to be globally trivial", or perhaps "the failure of local solutions to glue together to form a global solution". In the de Rham cohomology of a smooth manifold, any closed form ω is "locally trivial" in that you can cover the manifold by contractible charts, over each of which a solution to dα=ω exists by the Poincaré lemma. The cohomology class [ω] measures the failure of existence toof a global solution of this equation. Similar remarks can be made about simplicial, singular, and (especially) Čech cohomology.