Much like anything there are a variety of formats and methods out there.
That said there are a few methods that more popular than others, I will run through the end users need to know approach, would be ROM hackers there are better discussions of patching methods elsewhere (docs among other places). Most have *nix implementations but I leave those to you for the time being and will focus on windows ones.
Equally the readme, release notes or similar should detail what format it is and may even come with a method to apply it.
1) IPS - very old and very limited so used only the smallest games or files within them.
http://home.arcor.de/minako.aino/ipsXP/ does well though there are more.
2) Xdelta - old format and generally broken into two formats.
http://www.evanjones.ca/software/xdelta-win32.html for some of the earliest DS patches and
http://code.google.com/p/xdelta/ for the newer ones. It should be somewhat backwards compatible though forwards is a stretch.
3) BSdiff -
http://sites.inka.de/tesla/f_others.html#bsdiff has a tool. Roughly in line with xdelta in my experience though it might have some quirks and limits.
4) Batch file and related methods. DS games are built on a filesystem and they can be unpacked, edited and repacked with fairly small patches. This is everything from batch files/shell scripts, to exe files (hopefully with options) right through to actual formats (DPF as seen in Jump Ultimate Stars being a good example).
There are a few other formats like beat and UPS but where the latter has seen some use in recent times neither has seen much use on the DS. If you spend time in the playstation or some aspects of the Wii you might also encounter PPF though I have not seen anyone use it for the DS.
There are also a few tools that aspire to be universal patchers and support all the formats and others or act as GUIs for the programs I linked which are largely command line.