You can buy the hardware necessary to read codes at a number of places, but they all pretty much seem to sell a variant on the options
sold by Deal Extreme for just over $30 or so. There are even models for under $40 that use USB connections instead of the older style Serial ones that most people probably have now.
Unfortunately, the free software tends to range in quality from crap to unstable crap.