En su nivel muy básico, JTAG es un protocolo serial estandarizado. Puede crear uno de un puñado de componentes por menos de $ 20, pero será lento. En general, los más caros ofrecen mayor velocidad, soporte de voltaje más amplio e incluso operación autónoma. El software utilizado para controlar la interfaz JTAG en particular determina si podrá programar los dispositivos en los que está interesado.
Personalmente estoy contento con las unidades Olimex JTAG de $ 70 dólares. Son USB, basados en el FT2232, funcionan con dispositivos de 5V y 3.3V y tienen un buen soporte tanto para Linux como para Windows (no estoy seguro acerca de OSX). También tengo un Atmel USB Blaster para programar Altera FPGAs (soporta hasta 1.0V IO) y uno antiguo basado en USB para dispositivos Xilinx. Finalmente, también tengo un adaptador GNICE + JTAG que se usa principalmente para los procesadores Analog Devices Blackfin.
No lo he probado, pero creo que el Altera USB Blaster debería funcionar para cualquier cosa a la que me conecte, aunque no es compatible con RTCK (reloj de retorno). Los principales dispositivos ARM son compatibles con RTCK, que es un medio para que la interfaz JTAG detecte qué tan rápido puede ir el reloj JTAG y aún así ser confiable.
Mi sugerencia es echar un vistazo a los dispositivos particulares que desea utilizar y ver si puede encontrar una unidad JTAG común que sea compatible con todos.