Get a dragon, they cost 50€ or a bit less, have one for years now, never failed me..
If you get into ARM's, just get a student J-Link for 50€ and be happy.
Agree with the J-Link suggestion. Also consider the
J-Link EDU Mini, which is $20. Definitely a no-brainer for ARM developers.
Disagree with the AVR Dragon recommendation. AVR Dragon isn't being updated anymore, and it can't program or debug new AVR parts.
And if you're an Atmel loyalist, you'll want to abandon the megaAVR and switch to the new AVR parts (the tinyAVR 1-Series stuff), as they've got substantially better peripherals and clocking options than the popular megaAVRs that people use, and they're also cheaper.
Problem is, they use UPDI — a one-wire programming and debugging interface — which only the Atmel ICE supports.
I'm not going to complain about UPDI, which is way better than the horrific ISP/debugWIRE combination that megaAVRs use, but it does mean my AVR Dragon is getting retired if I ever have to work with Atmel AVR parts again (doubtful).
By the way, if you're like me and you assumed you could use an mEDBG on a board to program arbitrary parts, don't waste your time. I bought an ATtiny817 Xplained Mini, with the intent of developing code for the ATtiny1617. No dice: the mEDBG on that board is programmed specifically for the ATtiny817, and Atmel Studio refuses to use it to debug anything other than that chip.
The guys over on AVR Freaks thought I was insane to think you could use a $20 dev board to debug an external target. I thought they were insane for suggesting otherwise, as no other MCU manufacturer locks down their dev boards like that.
Atmel is insane, and their AVR parts are completely average in the soup of 8-bit, 16-bit, and 32-bit parts out there. Still, if you're forced to use them for legacy reasons or general sadomasochistic inclines, pick up an Atmel ICE.