I've got an EZFA 128Mb, and that's plenty of room for quite a few nes roms, gb roms, and sms/gg roms. Only a couple small gba games though. VERY easy to use, great compatibility.
I've also got an Ecube 1Gb cart, which can hold quite a few gba roms, but it's quite tricky to connect it to your computer, doesn't work well with emulators, and has no official support anymore. Oh yeah, it can't play DS roms.
I also bought a Supercard SD for my NDS. It runs most NDS games no problem, although it's gba compatibility is spotty, i've found most of the games it won't play aren't ones I'd want to anyways. The gba has almost more garbage media than the 2600 does. Emulators work great, and it even has pocketnes, drsms, and I think goomba already installed into the firmware of the cart. Just drag and drop roms into the SD card, pop it in and play. SD cards are relatively cheap right now, as well as a supercard sd, in the right places.
Out of all of them, a supercardSD/128MB SD card combo would probably be the cheapest route, and the easiest to use.