CustomizingWithPatches
Introduction
Patches (see some examples in Patches) are more local (than 'local' customizations ;-).
Alternatives to patches
CustomizingWithLocalDir and CustomizingWithOverlays.
Advantages of patches
First advantage is that you can group many changes in many files into one patch file. So a patch which adds one feature, which must be implemented in many modules can be hold in a single file together.
If you're using the local dir then you have to check for changes in files that are overridden. Overlays are better as you have to check particular functions/methods only which should be easier. However, with patches you don't have to check anything as patches fail to apply if a source code has been changed dramatically on update.
DirkPape, for example, maintains a directory of patches and use a version upgrade script which automatically tries to apply the patches into a new version's source tree and reports conflicts.
The second one reason to choose patches is better shareability, that's quite easy to read patches and they are smaller than copies of the same files with small changes.