xjm has a great guide for doing interdiffs using two branches for the original patch and your new changes. I must admit I'm lazier than that, and have a much simpler process for doing interdiffs on patch updates. Of course this only works if you work on one patch at a time. Branches are better when you work on different things and want to keep those things around. With that, here is my simpler interdiff workflow.
git
By Gábor Hojtsy, 10 August, 2007
Although Drupal itself provides a central CVS repository for the Drupal core code and contributed projects management, it is well known that people use other tools for their own purposes. There were several ocassions, when private Subversion repositories were used to develop new core functionality (such as Forms API or the multilanguage changes coming up in Drupal 6). Some people also like using BZR to manage their own changes easily.
A very detailed introduction hit my web browser today though, explaining how can you manage and even upgrade your Drupal installation (including contributed modules) using Git, even keeping local modifications.