From the GPSBabel homepage:
"GPSBabel converts waypoints, tracks, and routes between popular GPS receivers and mapping programs. It also has powerful manipulation tools for such data.
By flattening the Tower of Babel that the authors of various programs for manipulating GPS data have imposed upon us, it returns to us the ability to freely move our own waypoint data between the programs and hardware we choose to use."
I use GPSBabel to retrieve data from my GPS so that I can use it for Openstreetmap.
Contribution link: http://www.gpsbabel.org/ under "Supporting the project"