depends entirely on your tastes.
if you like new generation games, DS is the way to go. DS is cheaper, but to play homebrew or backups you have to spend $ for the m3, etc and it gets pretty close in cost to the gp2x when you add that in.
One note on the gp2x, you also need good batteries, good charger, and large memory card..so there's a cost associated with all of that.
I have the gp2x and it's good at what it does (playing old school emulation). From early on it's played Atari 2600, NES, NeoGeo, and Sega Genesis/megadrive pretty much perfectly in my mind. SNES was hit or miss depending on the game(due to performance) and GBA was nowhere to be seen. In the past few months though, SNES is now a very good emu (plays everything I throw at it) and GBA has made unbelievable progress (and the developers think they'll get it to full speed before long).
The difference maker for me was the OTHER things, though. gp2x is more of a media player. I can put several episodes of deadwood or heroes on my memory card, and with my 8 rechargable AA batteries pretty much fly anywhere and have enough viewing entertainment to keep me occupied (and mix in some gaming in between). Essentially my buying decision came down to gp2x was the cheapest movie player, had support for normal AA batteries, had exceptional battery life compared to other PMV's, and oh, by the way, plays some great old school emulation