Maybe not the best or as good as buickwagon mentioned, but when you look for one, make sure you have CAN support, which can pull additional mfg specific codes that a cheap one cannot. It can be difficult to look through the specs to determine how many or what classes of these codes it can do with its internal dictionary. Some can be had for 100 bucks or less that will give you some additional basic CAN codes. Mine is an older Craftsman CAN OBD2 and it can pull at least some transfer case codes that a cheap one cannot. These are GM specific codes I think.
Keep in mind a lot of these will have you installing software to get a "report" and try to get you to buy updates. In my case, the TCM code still showed on JUST the handheld device without needing to connect to a PC.