I personally took a third option. Flashcarts. Sure, you have to pay money for them but it's worth the luxury of being able to play roms on hardware.
This.
Nothing like the real DS to play games on.
I've decided for myself that DS emulation is probably not going to reach the level of a VBA or another top emulator. The options simply aren't that good.
IMO it's unforgivable that Desmume is so slow on many machines. I thought it was because people were trying to run it on ancient single core Pentium 4 processors for example, but that's not the case. The DS is not a very special thing hardware-wise, it's on the level of a N64 if not worse, yet many PCs struggle to run Desmume, because it's unoptimized as hell.
Another reason I decided to stop supporting Desmume is their attitude towards Pokémon games. As many of you may know, HGSS have several bugs in Desmume. People thought it was the anti-piracy thing, but one of the Desmume devs actually admitted it was a fault of the emulator itself (and flashcarts). The fix is supposed to be easy, yet they've never done it. Why? Because "we don't care enough about Pokémon games", or "we aren't going to support Pokémon games". Well, maybe you should, because one of the main reasons people even buy a DS is to play Pokémon. It's probably the biggest Nintendo franchise on the DS, and HGSS is one of the latest highlights of the console.
Furthermore, there are a few annoying graphical errors in 4th gen games with Desmume which put me off.
Regarding No$GBA, I wonder why people still use it anymore. It's outdated, needs AR codes for most modern games, can't even maximize window without an external application, and its graphical capabilities are horrendous. I was never a fan of the No$ series. I remember when No$GBC way back in 2002(?) was shareware and there were freeware emulators with much better capabilities.
DS emulation has its uses. For someone without a 3rd gen game and a DS Phat/Lite, Desmume is the only way to run Pal Park, even though it's, once again, buggy. But I think that, in the case of the DS, abandoning it is the way to go. Vertical LCD mode (which is the way the games are supposed to be played) looks like crap in a modern widescreen monitor, and using mouse to reproduce touch screen is less than optimal (Pokéathlon was a nightmare for me). Besides, now that Desmume is pretty much the only DS emulator with good playback and compatibility, I expect the team to lessen work on it and not fix what should be fixed, since they don't have any competition. Luckily they aren't like the PJ64 devs, though, which took donations and are delaying their latest public release since 6 or 7 years ago.