When do you Branch? When do you Tag your Code? Does your team ever work directly on the trunk? During my few years with CVS and then SVN, I've been talking to various teams in and outside eFORCE on how they use their version control system to find out what's the 'Best Practice'.
The answer that I found after various discussions (some of which were fairly recent) was that "There is no Best Practice! It depends on your project, team and how fast you want to code changes to happen".
I ended up documenting two most common approaches and my opinions on when to branch, when to tag and if people should work on the trunk or always work on branches, here. If anyone in or outside eFORCE is using a completely different Approach from the ones I documented or have seen, and the approach has worked well for him / her, do drop in a comment and let me know.
It's fascinating to see multiple right answers to the same question :)