Percolation theory is a collection of mathematical models for phenomena such as fluid flow and clustering behavior in random media. This article emphasizes three major aspects of the theory: (i) The percolation threshold is a critical point at which the properties of the model exhibit a substantial change. The threshold depends on the detailed structure of the lattice graph used to model the medium, and various approaches for finding exact values, bounds, and estimates of percolation threshold of different lattices are discussed. (ii) The behavior of a model at and near the percolation threshold is believed to be independent of the detailed structure of the graph, described by power laws, which depend only on the dimension in the case of lattice graphs. (iii) The variety of extensions and generalizations of the classical percolation models allow a wide range of phenomena to be modeled. A selection of different percolation models are mentioned to illustrate the possible range of applications.