There are a few reasons I switched to dd-wrt.
SNMP - dd-wrt provides an SNMP server so I can use something like cactai or mrtg to pull detailed traffic information (and things like cpu load/temps) from the device. Being able to see how much bandwidth I'm using is useful.
netflow - dd-wrt provides rflowd a service that can send cisco style netflow information to a host running netflow analysis software like ntop. This gives me a great deal of visibility as to what is happening on my network. Knowing what hosts are talking to the outside world (and what services they use) can be helpful when ensuring that everything is secure.
vpn - if you get the vpn build of dd-wrt you can use openvpn clients to connect to your network remotely via vpn. I prefer this to stuff like port forwarding.
static dhcp assignments - last time I used the stock linksys firmware I was unable to use DHCP to assign static addresses. dd-wrt allows this.
local dns - dd-wrt uses a service called dnsmasq that allows your router to serve dns for locally attached devices. I don't need to remember IPs (or distribute host files) to the devices on my network.
I've been running dd-wrt for a few years and it works great for me.