Developers work in their own trees, then submit pull requests when they think their feature is ready.
Requests get discussed (where? bitcoin forums?) and if there's broad consensus they're a good thing, well written, match coding style, etc. then they're merged into the 'master' branch.
master branch is regularly built and tested (by who? need people willing to be quality assurance testers), and periodically pushed to the subversion repo to become the official, stable, released bitcoin.
We'll create feature branches if/when there are major new features being worked on by several people.