Our app, Geopointe, does have this built in. In addition to doing all the mapping you might want, we have an Apex method at geopointe.API.getDistance(Id1, Id2, geopointe.API.units.MILES). This gives you back the distance.
That will be far and away the simplest in the end.
You can also do a find for "arcDistance" in that toolkit. This is a method measuring the distance, but takes into account that we live on a sphere.