Normally we try to avoid branching just for the sake of it, but for a major release we will (especially if there are lots of new features to add to trunk).
Unfortunately, subversion isn't the most helpful at merging between branches, being marginally better then CVS (for instance, if you add a file to a branch, it considers that an evil thing to do and will not automatically merge it back into the trunk).
Saying that, we do from time to time have to do mods in braches and then merge them in.
Often the easiest way is to take a copy of the module from the branch that you want to merge, and dump it in a temp directory. Then, using cygwin (or bash on linux) use:
find . | grep .svn | xargs rm -rf
on the TEMP copy to remove the svn control directories. You can then copy that cleaned temp version over the top of the existing directory in trunk. You will need to manually remove any files you removed from the branch though, but other then that, it kind of works.