Search for lameboy. It's a GB(C) emulator. It even does SGB emulation!
Also, TyrianDS is pretty awesome. DSdoom sucks, and I haven't been able to get SNESDS or NESDS to run. DSLinux is more of a proof of concept than anything, but it sounds cool, I've never tried it. DSOrganize is neat but not very useful. There are a few web browsers but I haven't got any of them to work. If your flashcart doesn't have a built in media player, then use Moonshell, it's what everyone uses.
Homebrew will run on any modern, DLDI capable flashcart. I have an M3DS Real and it's great. I've heard the Supercard DS One, the EZ-Flash V, and the Acekard 2 are good too. GBATemp has a bunch of reviews, but you need to register to view them. If you want a future-proof DSi flashcart, I've heard that the M3i is the best, but I've never tried it so I can't say for certain. Don't buy an R4DS, you probably won't get the real thing. Buy from a reputable source. I bought mine from Kickgaming.
Most flashcarts take a microSD card. Get a good quality brand name one, I have a Sandisk one and it works great. Mine is 2GB and has plenty of space but if you plan on using your DS as a media player get a bigger card. Most flashcarts come with a cheap microSD reader. Mine is okay, but cheap and I don't think any of them support microSDHC. Some carts come with extras, like rumble paks and such. Mine came with a rumble pack and a "GBA expansion pack". The rumble pack is next to useless. The GBA expansion pack lets you play GBA games and acts as a RAM expansion.
This is what I have: http://www.kickgaming.com/real-simply-r ... p-277.html