How to program a microcontroller via USB using JTAG?
What chip are you using?  There are (unfortunately) no universal standards for USB JTAG cables, so it will depend on what chip and what toolchain that you are using.  If you are using something like an ARM processor with a GCC toolchain, you will probably be able to use OpenOCD to program your chip.  In that case, there are a bunch of options for JTAG cables, the cheapest of which are based on FTDI FT2232 chips.  The FTDI chip could also be installed directly on your board if you want.  One advantage of the FT2232 chips is that they can provide JTAG and a USB UART over the same USB connection.  For other chips, you may be stuck with using proprietary software from the chip manufacturer that does not necessarily support 3rd party or FTDI based cables.