There is a big difference between a code SCANNER and a code READER.
The $79 cheapies you see at Pep Boys are readers. If all you want to do is retrieve numeric codes and reset the MIL, this is fine.
For another $100-150 more, a code SCANNER will give you information about idle speed, IAT temp, real-time TPS voltage, O2 voltate readings, fuel trim percentages (long and short term), exact coolant temp at the sensor, RPM variations, cylinder power balances, and my favorite: the ever-popular rediness check, which tests every input/output sensor to make sure everything is in-spec before visting the smog-check testing center.
You can spend more if you need transmission diagnostics and other esoteric information. I don't need all of that stuff, but the O2 sensor data is valuable to me: I can look at each sensor's performance and tell if there's a pending problem, or if one has failed, know EXACTLY which one at a glance without having to look anything up in a manual.
I settled on an Actron 9145 code scanner for about $180 on sale. This is more than most shadetree mechanics will ever need. I've easily recouped that cost in the last few years by reading my own codes, resetting the 'crank sensor out of spec' when I unplug it to prime the engine after an oil/filter change, and the one infamous time when I removed/cleaned the EGR valve and had a serious out-of-spec idle problem afterwards. (It actually said the EGR valve gasket was leaking - how the computer knew that is a mystery to me.)
Either way, a code scanner/reader is a very good investment.
Incidentally, if all you want is codes, newer Chrysler and Jeep products will display this on the odometer display by pressing the odometer reset button while turning the key to the RUN position --no need to buy a seperate code reader if this will suffice.