remote locations will almost always have some form of call quality issues by the time they get back to the main office because of the way that the internet works. the best practices are to set the remote phones to g729 codec if you have enough licenses for g729 calls as it uses way less bandwidth per call then the standard g711.
I have used everything from yealinks, to polycoms, and sip softphones and all seem to be pretty good. I stay away from the cisco's because of the smart net contracts and such. Qos on the network switches and the routes can go a long way in going the best that it can to help the packets get out and through the lan area network the fastest. but once you are on the public internet there is no qos is it is really best effort at that piont.
Some things that i have found over the years is to stay away from dsl connections, there is just not enough throughput and way to much overhead for almost any good voip applications. cable modems seem to very well vs the dsl's.