A taxonomy is a system of classification. Outside of WordPress, the word “taxonomy” is often used to describe the scientific classification of living things, popularized by Swedish scientist Carl Linnaeus (1707-1778). In WordPress it refers to the categories and tags (where posts are classified) and to custom taxonomies that you (or your programmer) create.
Taxonomies can be either hierarchical or flat. For example, scientific classification is hierarchical: the species Felis catus (domestic cat) is a child of the genus Felis. The WordPress category taxonomy (like those of Linnaeus’ system) is hierarchical, meaning that some taxonomies are the children of others. The WordPress tag taxonomy, however, is not hierarchical.
Often, custom taxonomies are used to categorize custom post types. For example, you might have a custom post type Books, which is categorized into Genres (a custom taxonomy).
To create a new taxonomy, a snippet of code needs to be added to your theme using the register_taxonomy() function. Programming is beyond the scope of this definition, but you can learn more at WPMU: A Quick Guide to Creating Custom Taxonomies.
Once you’ve created a custom taxonomy, there are many plugins that can help you use them effectively.