Provided that you have a phone running Android 1.6 or higher, and are in a supported country, then Google Maps Navigation will do this. You should have Navigation as a separate icon in your apps list (upwards pointing blue arrow icon) even though it comes with Maps. If you don't have that (and are on a supported version and in a supported country) then just go to the Market and search for the updated version of Google Maps.
I've used it for car and walking directions, and it works very well, don't need to take the phone out of my pocket while walking, as everything spoken through my headphones.