Often it is an inventive way of using objects, classes, and polymorphism to get a special effect. Here are some simple ones. In describing programming languages and other domains we often have a situation where an object can be made of other objects from the same class. For example, a statement may be a compound statement, and compound statements contain a number of statements. Similarly an expression often has an operator and a number of operands, and each operand can be any expression.
Similar thing happen in other domains as well.
For example in modeling a factory we might find that a product is made of parts and these parts are themselves products of the factory. The Composite pattern handles these situations well. The state patern allows an objects behavior to change as it runs. It simulates dynamic inheritance. For example, suppose we want to have a class of Person who can be either Married or Unmarried and whose behavior depends on whether they are married or unmaried.