This can easily be done via CloudMade which accepts lat/lon as start, end and intermediate points, just take a look at the [Routing HTTP API Examples][1]. In fact, it is even more work to do it with an address instead of lat/lon :).
As a fast and open alternative you can also use [OSRM][2] which also offers an [API][3] to its routing service with JSON responses. It only provides routing for cars so far, but is actively developed.
[1]: http://developers.cloudmade.com/projects/routing-http-api/exampleshttp://developers.cloudmade.com/projects/routing-http-api/examples
[2]: http://project-osrm.org/
[3]: https://github.com/DennisOSRM/Project-OSRM/wiki/Server-api