Joe Duffy has posted an update to the Dispose, Finalization and Resource Management section of the .NET design guidelines. I agree with Keith Brown's assertion that this is an intricate topic that should be understood by anyone writing class libraries. It's quite long, but definitely worth skimming over now and using it as a reference later when you're designing that new class library (or updating an older one).