Up to now there are 2 emulators that both run ds games very well. However depending on your computer you might prefer one over the other...
No$gba
An emulator that has good compatability and also has very little speed issues. This emulator runs fine on somewhat older computers, but can get too fast on newer computers like vista and windows 7. Some roms won't work on this emulator and the development for this emulator has stopped a long time. The latest version is 2.6a
DeSmuME
A very good emulator and probably the best around. DeSmuME is still in development and is now open scource. It can have some MAJOR slowdown on older PCs but newer PCs like vista and windows 7 run it fine. Unlike no$gba games don't run way too fast because of a frame limiter. It is also good for TASsing and other stuff. If you have a fast PC, go for this one. Do note that it only works fully on a pc with SSE2, but that mostly boils down to xp or up.
Long story short: the best for slow PCs is no$gba which isn't updated anymore. And the best emulator for faster PCs is DeSmuME, which is now open source and superior to no$gba, but requires SSE2 for full functionality (basically XP or up in most cases).