Self-adaptive discretization methods are now an indispensable tool for the numerical solution of partial differential equations that arise from physical and technical applications. The aim is to obtain a numerical solution within a prescribed tolerance using a minimal amount of work. The main tools in achieving this goal are a posteriori error estimates which give global and local information on the error of the numerical solution and which can easily be computed from the given numerical solution and the data of the differential equation. This book reviews the most frequently used a posteriori error estimation techniques and applies them to a broad class of linear and nonlinear elliptic and parabolic equations. Although there are various approaches to adaptivity and a posteriori error estimation, they are all based on a few common principles. The main aim of the book is to elaborate these basic principles and to give guidelines for developing adaptive schemes for new problems. Chapters 1 and 2 are quite elementary and present various error indicators and their use for mesh adaptation in the framework of a simple model problem. The basic principles are introduced using a minimal amount of notations and techniques providing a complete overview for the non-specialist. Chapters 4-6 on the other hand are more advanced and present a posteriori error estimates within a general framework using the technical tools collected in Chapter 3. Most sections close with a bibliographical remark which indicates the historical development and hints at further results.