MikroTik may be an option. I use one in a small office setting without any big complaints.
The configuration UI isn't the best, but they also have a full scriptable CLI that isn't too bad. Huge future set. I just wish they would move the newest version (7) along quicker in development.
For example, this is how I'm finding the subnet mask from a string like "192.168.1.0/24" in a script I recently wrote (I think I got this from a forum post, but I can't find it anymore.)
:local mask do={ :return (255.255.255.255 << (32 - [:pick $1 ([:find $1 "/"] + 1) [:len $inet]]))}
However, the capabilities you get out of the router are very good at that price point.