I used to have an ISP located in Ohio. I live in Oregon. They had a local dialup number for me, but the DNS they wanted me to use was theirs in Ohio. Traceroute showed me that it was 5 or 6 hops from me (that is, I went through 5 routers to get there, and 5 back). Since a DNS gets queried a lot, my internet service was sluggish.
Eventually it occurred to me that they didn't have any of their own network facilities, but instead leased service from the big telcomm vendors, Qwest in my case. After all, that's the only local dialup service here. Once I realized that I looked for routers on Qwest's lines that were closer to me. I found them just one hop away, in Seattle. My round-trip ping times to that DNS are under 20msec, sometimes around 10!. Dramatically faster internet. I finally upgraded to DSL Broadband with QWest, and was pleased to see that the DNS they recommend is exactly the one I had found and used for dialup.
So, call your ISP and find out what DNS they recommend, and then do a traceroute to that DNS from your computer. Pay attention to the output because it will tell you who is actually providing the lines that you use first. (As I said, in my case it was Qwest.) Then search for a DNS on that communication vendor's network. I just used Google to search for "Qwest DNS", but you should use your comm vendor's name instead of "Qwest". Then use traceroute to find the closest one, and Ping to verify it is the fastest.
If all this seems like a little too much, then look at OpenDNS's offerings. If you specify their DNS, it will automatically actually assign the one of theirs that is the closest to you. It's still worth doing the other stuff first, I think. In my case, Qwest's DNS is still faster then the OpenDNS server, even though both are in Seattle.
http://www.opendns.com/