A while ago we did a tutorial on how to reverse engineer USB protocols using a USB logic analyzer, for when you have to develop your own USB drivers (say for a product that only comes with Microsoft support!) We also wanted to point out that if all you're doing is debugging or reverse-engineering a basic product that uses serial (a COM port) you don't need to shell out for a analyzer box! Instead you can use a serial port monitor, a piece of software that can spy on the COM port. These can also be handy when you have to debug software you wrote - to see what's really going out on the hardware.
We tend to need to reverse-engineer stuff in Windows so we use a nicely written piece of software called PortMon. It's a little old but it works great!
For example, while reverse engineering how to use our serial JPEG camera, we had a Windows software that could control the camera but we wanted to port it to Arduino (or any microcontroller really). Since the software used a serial COM port, we started up PortMon, then started up the driver software.
Then whenever data was sent back and forth, we'd get the data in HEX. For example here you can see the first READ (data sent out to the camera) as "76 00 31 00 00" and the WRITE (reply from the camera to the computer "56 00 31 0C 01…"