Implied work branches with DVCS
We use Mercurial so there is the implied work branch on the developers dev box. Commit are always done to the local workspace. When a releasable piece of work is completed it is pushed up to the primary repo server where it is automatically built and tested.
We almost never create explicit branches, but then again our sprints are never more than 1 week long and are cards take no more than 1.5-2 days to complete.
Also, you can mitigate merge pain by threading in work from other parts of code or other projects so people aren't having to do difficult merges all the time.