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 of a global solution of this equation.  Similar remarks can be made about simplicial, singular, and (especially) Čech cohomology.