I bought a new one a few months ago because I went from working at a hotrod shop to an auto repair business. Make sure you get one that does CAN protocol which is the newest OBD2 "language"
There are a few options. You can get a little pill that just displays the P-code and nothing else, or you can get one that displays the code, logs data, charts inputs, displays diagnostic information, etc. I got an $80 one that does all of the above, but very poorly. Its also updatable with PC, and has tons of manufacturer-specific codes.
So, you can get a pill and look up codes online, or get one that tells you the code right away. My buddy got one off the Snap-on truck for $1700, and I gotta tell you its worth it if you're in the business. The hobbyist doesn't need that, but his reads every sensor parameter in true real-time and allows you to see it as a moving graph, a fixed graph, text, actual sensor values, or their percentage or output.