All ISR G1 and ISR G2 now come with a USB port (or two). The ASR also have a USB port.
For the switches, 2960S, 3560E/3560X, 3750E/3750X have USB port.
Let me start with the switches. The switches mentioned above support booting the IOS from USB. You can boot the IOS via normal bootup process and/or in ROMmon.
The ISR G2 and ASR can also boot from USB (normal and ROMmon).
Except for the 870, ISR G1 needs to have the bootstrap upgraded to 12.4(13r)T before you can boot an IOS using USB from the ROMmon. Otherwise, you can can boot the IOS normally.
For the 870, you can only boot the IOS from ROMmon.
ISR G1 will support USB sticks up to 4Gb. The rest can support up 4Gb or 8Gb. Take note that NOT ALL USB STICKS ARE SUPPORTED. Another thing is that you need to format the USB sticks to FAT16 before you start putting anything into them.