Supported hardware: DD-WRT supports Broadcom, ADM, Atheros, or Ralink chip sets, but be aware that not all devices using these chip sets are automatically compatible. Some may require unit-specific hackery to work; some may not work at all, period. The DD-WRT maintainers also keep a database of supported devices, along with a list in their wiki of both devices and features.
Features: DD-WRT provides a breadth of powerful features not normally found in consumer-grade routers, such as ChilliSpot (for creating commercial-grade Wi-Fi hotspots), the AnchorFree VPN system, and support for the NoCat wireless community network system. It also comes in a range of differently sized builds, from the 2MB "micro" build that supports only the most essential functions to the 8MB "mega" build that has, well, everything. This allows the firmware to be placed on devices of widely varying storage capacity.
Limitations: The core version of DD-WRT is updated very infrequently. If you want more frequent updates, you either must go with an interim beta or pick a manufacturer-supplied version with regular revisions.
Recommendation: DD-WRT is the best choice for most users. The fact that DD-WRT comes as a stock preload (albeit with mods) in many routers makes it easy to get your hands on a router with it both preloaded and tuned specifically to work with your hardware, as well as to keep it updated.
TomatoOriginally devised as a replacement firmware for Broadcom-based routers, Tomato drew attention for its GUI, bandwidth-monitoring tools, and other nifty professional-level and tweak-able features.
Supported hardware: Hardware support is much the same as with DD-WRT, although pay close attention to exactly which builds are compatible with the particular hardware you're using.