When I last purchased my vehicle, I:

1) went to the manufacturers site to identify what I wanted.
2) went to edmunds and kbb to see what a reasonable price was
3) went to a local dealer and test drove and explained to the dealer how I would buy
4) e-mailed every dealer in the radius I was willing to drive (including the salesman who gave me the test drive) and:

a) Identified the make/model/trim/colors
b) identified the options/packages I wanted
c) identified what extended warranty I wanted
d) identified the maximum mileage the vehicle could have on it.
e) identified I was ready to buy
f) identified that this e-mail was being sent to multiple dealers

I then asked for an "out the door price" on the vehicle.

For those unaware, an out the door price includes everything (cost, taxes, shipping, dealer prep, etc.).

I could then was able to compare prices, play dealers off of each other and I received what I believed was a fair price for my vehicle. All in the comfort of my office.