Or more detailed:
Freetag  is a module that implements a simple, fairly robust beginning of a tagging and folksonomy system. It works with PHP4 and MySQL 3.23 so far, and i imagine that if it gets popular, it should be easy to port to additional databases and/or languages.
Maybe a way to build up its own tagging repository. Acutally I haven\’t tried, but according to the docs it is promising. As to feed the database, one could use his own tags or category names first.
There are probably at least two ways to tag a blog post. Either tags selected by hand at the time of writing or as a self-tagging system (algorithm), that takes e.g. the content of a blog post, analyzes it and applys the tags to the post.
Some more thoughts on tagging and retagging at overstated.net .