The folks over at IMAGEX MEDIA just posted one of the better/straightforward descriptions of how to use SVN vendor branches.
When managing several Drupal projects you must have a way to manage the code for each individual project in such a way as to reduce the likelihood of errors when updating or upgrading. It doesn't hurt that the same code management strategy also reduces the work required to do upgrades.
I personally use a strategy where Drupal (core), contributed modules and individual projects all have their own repositories. A project repository in most cases will only contain the 'sites' folder. And that sites folder will only actually contains settings files and custom modules, themes and theme assets. Everything else (Drupal and contributed modules) is brought into projects via SVN externals.
But the use of vendor branches and Externals are not mutually exclusive. Even in my configuration vendor branches can still be used to manage the core Drupal repository and the contributed modules themselves (particularly patched versions of contributed modules).