gpsopt is a little tool that allows you to reduce the number of waypoints in a GPS track. It will read and write IGC Flight Recorder files, so you might have to use gpsbabel to convert your data to IGC.
The approach is extremely naive and flawed, but google couldn’t find a proper solution so I ended up with this ugly hack.
The script is run like this:
./gpsopt.py input.igc reduction_distance > output.igc
where input.igc is your large IGC file reduction_distance is an integer value (try something in the range of 25 to 5000) and output.igc will contain the reduced GPS track.
You can download the script right here.