Traditionally, mathematics is built on set theory, and all objects studied in mathematics are ultimately sets and functions. It has been argued that category theory could provide a better foundation for mathematics. By analyzing precisely which properties of the category of sets and functions are needed to express mathematics, one arrives at the definition of topoi, and one can then formulate mathematics inside any topos. Of course, the category of sets forms a topos, but that is boring. In more interesting topoi, the axiom of choice may no longer be valid, or the the law of the excluded middle (every proposition is either true or false) may break down. It is thus of some interest to collect those theorems which are valid in all topoi, not just in the topos of sets.
One may also work in a particular topos in order to concentrate only on certain objects. For instance, constructivists may be interested in the topos of all "constructible" sets and functions in some sense. If symmetry under a particular group G is of importance, one can use the topos consisting of all G-sets. Other important examples of topoi are categories of sheaves on a topological space.
The historical origin of topos theory is algebraic geometry. Alexander Grothendieck generalized the concept of a sheaf. The result is the category of sheaves with respect to a Grothendieck topology - also called Grothendieck topos. F. W. Lavwere realized the logical content of this structure, and his axioms (elementary topos) lead to the current notion. Note that Lavwere's notion is more general than Grothendieck's, and it is the one that's nowadays simply called "topos".
A topos is a category which has the following additional properties: