No precise definition of this term is agreed upon as yet, however it is a common and useful concept in modern protein science. One popular view is that a domain is a sub-section of a protein which appears in a number of distantly related proteins and which can fold independently of the rest of the protein.
The importance of this is that useful domains which confer stability in particular situations (e.g. the 7TM domain as used by the very large family of G-protein coupled receptors) or a commonly useful function (such as an ATP-binding cassette, which allows some proteins to expend cellular energy by hydrolysing ATP) can be re-used in many different proteins.
(If this sounds like object composition in object-oriented programming to you then you're absolutely right).
The particular importance of this is that it can make the inference of relationships between proteins (or genes) much more complicated - not least because two proteins with an identical structure and function can contain the same domains in a different order (a phenomenon known as domain shuffling). This has importance in sequence alignment.