I just started using Prune, a free GPX editor that runs on the Linux operating system. (It will also run on Windows, Mac OSX, and Solaris, but my goal was to find a program that runs on Linux.)
My Garmin doesn't support routes and accepts only a single waypoint, so I can't make use of most of what Prune will do. But Prune will display my tracks on a map and show where I've been (with all the data the GPS records). The description says it'll let me edit waypoints and create new tracks but I haven't tried any editing. It will export in a variety of formats.
Prune requires maps in openstreetmap format, so it won't work with Google maps. But Prune quickly loads the required map tiles with just a click.
Everything that I HAVE tried has worked quickly and well.