DeSmuME is the most seasoned open source Nintendo DS emulator. It sports tools designed for hackers, speedrunners, youtubers, and casual gamers. Homebrew programs are supported and can even be debugged through GDB.
The Windows and OSX versions are both relatively feature rich, and there is a small universe of forks and mods that add even more features for casual gaming.
DeSmuME is the origin of RetroArch and OpenEmu Nintendo DS support and is used by several mobile Nintendo DS emulators, with the notable exception of DraStic.
DeSmuME's source code is now hosted at https://github.com/TASVideos/desmume/
win32 autobuilds @ https://ci.appveyor.com/project/zeromus/desmume/build/artifacts
This is a good DS emulator. As game systems become more complex, these emulators have more challenges to face in emulation. The one-man (or small teams) operations that make these emulators have to learn many complicated methods for ironing out bugs. Everyone that spazzes about the emulation not working perfectly really needs to take a chill pill. It's tough work that's only getting tougher. We're lucky to have these things at all. Besides, just use an SDHC card with a slotable chip if you really want to play these games like the console. These emulators aren't for replacing the console itself, just to supplement ownership and potentially be useful for debugging and testing purposes. Relax, tardwads.