I have used SpamBayes for a few years and have been quite happy with it. It is a SourceForge open source project. More information here:
SpamBayes: Bayesian anti-spam classifier written in Python.
As a Baysean filter, it learns what you consider spam versus ham and self-tunes as you use it.