A Posteriori Error Estimation Techniques for Finite Element Methods