Yes, you'd need either an original DS or a DS Lite to play GBA games in hardware. To play both DS and GBA games, you'll need a flash cart for each slot, or at the very least a PassMe-style device for loading DS games from the GBA slot (this is extremely dated though, very few people still do this). The obvious choice is your preferred slot-1 card (e.g. Acekard 2/i, SuperCard DSTWO, etc.) and an EZ-Flash 3in1 in slot-2. Traditional slot-2 carts are written from a computer, but a number of carts are designed (or at least able) to be written directly on the DS, so your games are available on-the-go rather than "when you have access to a PC-based flasher".
The 3in1 also behaves as a RAM expansion (for the Nintendo DS Browser and homebrew like NeoDS and Quake, although NeoDS only detects the first model of 3in1, so it likely wouldn't work with a device you purchased today) and a rumble pak, for the 25 or so DS games which rumble along with homebrew like GameYob, for rumble in Game Boy Color games like Pokemon Pinball, Top Gear Pocket and most fishing games.
The 3in1 was traditionally available in both full size GBA carts and DS Lite dust cover form factors (GBA carts are larger and stick out of the bottom of the DS Lite); I'm not sure if you can still get the "full-size" model as it's years since I got mine. The advantage of the full-size model is that it's easier to use with a GBA/SP or Game Boy Player on the GameCube, but the Lite version will still work with some modifications to the case (cut off the tab, affix something you can use to pull the cart back out of GBA slots since it sits so deep in and is at risk of getting stuck. If you only plan to use the 3in1 with a DS Lite, there's really no reason not to just get the Lite version.