Here we document what we do at Liip for having Drupal deployments.
Source Code Control
Git seems to be the best choice, as it allows to handle local changes where necessary, and still update from the main project.
Drupal moved to git some time ago: http://git.drupalcode.org/
Git submodules are used to handle non-core Drupal modules.
The git commands to update code or add and remove modules are explained in Drupal 6 - Drupal and git source code control for Drupal 6, and in Drupal 7 - Drupal source management with git for Drupal 7.