The problem with JTAG is that not all AVR microcontrollers support it. I would recommend staying with something STK500/AVR-ISP compatible for maximum device compatibility.
I have modified a version of the AVRUSB for my programmer.http://www.tuxgraphics.org/common/src2/article05101/avrusb500_circuit_v2.pdf
I actually have both a JTAG and AVR-ISP on the same programming board, with three headers for each.
1) traditional 10-pin header (stk500 compatible)
2) 6-pin header (stk500 compatible)
3) 6-pin single inline to program DIP packages on breadboards easier