Solution 1:

I was a DD-WRT user until I saw the interface of Tomato, and then I switched. I made the decision based on management ease-of-use. In particular, I thought Tomato's QoS setup was a lot easier than DD-WRT's. Other reasons to choose might be the number of services/apps that have been ported to each distribution if you want to do more than just routing/wireless access.

Solution 2:

Here's a review of Tomato (a bit dated do) to help you make your decision:

  • Turn Your $60 Router into a User-Friendly Super-Router with Tomato

There's a mention of DD-WRT at the end. Also make sure to read the comments.

Solution 3:

You may be easily swayed towards dd-wrt after seeing tomato's supported device list. Contrast that with dd-wrt's list.

Personnaly, for the above reason, I never tried or plan to try tomato and have been using dd-wrt for a while. Some negative points you should be aware with dd-wrt:

  • Its open source nature is questionable (as you said);
  • Tends to have a few quirks even on stable releases;
  • The options available may overwhelm you;
  • Where's IPv6? :(
  • There's no reliable way to save/restore settings that'll work across versions.

On the plus side, if you're a tinkerer (and you are if you're playing with firmware) there are very frequent updates posted on the forum that may fix glitches you're having, improve performance dramatically, or even BRICK your router without warning.