It seems there are several types of diagnostic tools out there: hardware based scanners and software diagnostic tools. As a geek, I would think that diagnostic software would be best, since the software can be specialized and/or upgraded. Also, with an OBD cable connected to a laptop, it would seem that you'd have a wider choice of software. Is this true? Are there any opinions about what tools/software/hardware are good/better/best?