The one I'm planning on using is called Tomato (well a variant called TomatoUSB).
You simply upload the new firmware onto the router, reboot and your router is now running custom firmware. The wikipedia page I linked should give you a better idea of the extra features.
The main reason I brought the WRT54GL is for the QoS options. They allow you to prioritize internet access to different services.
In effect allowing someone to upload to youtube, while someone else uses facebook, my another person browses the web on there phone (WiFi) and I game with a low ping.