I can’t believe I didn’t notice this when he first published it (I only saw an internal email on it), but Steve Harman wrote this excellent guide to branching with CVS, complete with an easy to follow diagram.
He created these guidelines for the Subtext project, but they can just as easily apply to any project using CVS as an example of a sound branching policy. Keep in mind that for many branches you may encounter in the wild, you are typically done at Step D. However, in some cases you may want to continue making experimental changes on the same branch (rather than creating a new one), in which case (as the diagram points out), you continue repeating steps B through E.
If anybody out there has some constructive feedback, I am sure Steve would love to hear it. Afterwards, I will try and incorporate this into my Quickstart Guide to Open Source Development With CVS and SourceForge. Happy branching!