Gpsbabel did it for me the other day. Just copy the .source gpx file with the large number of waypoints into the gpsbabel directory, then type the following command from that directory:
gpsbabel –i gpx -f bigfile.gpx -x simplify,count=500 -o gpx -F smallfile.gpx
It’s case-sensitive (note small ‘f’ and big ‘F’).
It reduced a track of 800 or so waypoints down to 500 for downloading to my Geko