The more popular consumer map packages such as NG Topo! and Delorme Topo do this. You trace a path atop the base map and it will calculate trip distance and create an elevation profile. Routes can be broken into legs for more detail, daily distances, etc.
Drop in waypoints and you can organize them into a route you can upload to most GPS receivers.