I recently sold my GBA SP and 2 Flash2Advance kits. For GBA, I use a DS Lite + M3 DS Real on slot-1 + M3 Perfect Lite MicroSD on slot-2.
The DS has FlashMe v8 but by now its only use is to get rid of the health & safety nag.
The M3 Real is running the latest RetroGameFan multicart firmware for native DS games, and also native GBA when paired with the M3 Perfect Lite. The latter can also run DS and GBA software by itself but requires patching with M3 Game Manager, so I mostly use it as a GBA extension pack and to extract/inject saves from retail carts.
The M3 Perfect Lite sits flush on the slot-2 and is one of the few carts with enough RAM to load even the largest GBA ROMs. The rechargeable battery no longer held a charge and I wasn't able to find a replacement LIR1220 with solder tabs, so I used a ML1220 (which needs a lower voltage to recharge, but the actual voltage from the cart was still within specs).
Game Link (playing a DS game with a GBA game on slot-2 to unlock extra content on the DS game) is also supported with this combination using ROMs for both games.
Most DS and GBA homebrew works as well. For emulated GB/GBC, there's Gameyob - you could carry nearly every single GB/GBC game ever released, all on a single card. Who needs Virtual Console anyway?