So when we bought routers, we bought 3 Linksys WRT54GS's from circuit city, and one WRT54GL from newegg.com . The reason we had to do that was because circuit city only let us buy 3 WRT54GS's. This turned out to be a good thing because the GL was much easier to flash than that GS's.
I decided to flash the routers with DD-WRT because I figured it out first. I tried to flash them with gargoyle, a supposedly easier-to-use web interface, but I could not make it work.
To flash the WRT54GL, you download the appropriate file from dd-wrt. (enter WRT54GL into the box). You have to first flash the GL with the micro or mini .bin file. The way you flash the router is you connect your computer to it by connecting an ethernet cable between your computer & one of the LAN (not the 1 WAN) ports on the router. You then navigate to 192.168.1.1 in your browser (firefox or IE or safari) and type in username: admin password: admin. Navigate to Administration & then to firmware upgrade. Upload the micro/mini (mini is larger than micro) and your router will restart. It will then have dd-wrt on it! It's that simple.
To flash the WRT54GS, it's a little more complicated. You can only flash it with the micro version of dd-wrt, download the file from this forum post. If you're on a mac you'll need to use this TFTP client. It works the same way as the windows one. The link for the windows TFTP client in the forum doesn't work, download it from here and enter WRT54GS in the box & choose your version (probably version 7). The link to the windows TFTP client will show up @ the bottom under "tools". If you follow his directions exactly, it should work. If you have any questions, feel free to ask in the comments!