I have Linksys WRT54GL with Tomato firmware installed. When I connect internet cable directly to a computer I can download at about 8 MB/s, however when internet is access through the router maximum speed is up to 4 MB/s.
Statistics always show that there are about 3 MB of memory available, and CPU load does not exceeds 0.6. What else can be a bottleneck for the bandwidth.
EDIT: QoS is disabled.