Make sure you understand the difference between the 'push "route x.w.y.z/nn"', 'route', and 'iroute' directives. If you're using the 'route' directive you MUST have an associated 'iroute' directive or your traffic WILL NOT GO THROUGH.
A 'push "route w.x.y.z/nn"' on both sides advertises the subnet behind the local WRT to the remote WRT on the other end (although it could be used for other purposes). In other words, the client pushes his network information to the server, and the server pushes his network information to the client, so that each end knows what the other end looks like. This directive tells the remote end to add an entry to its routing table so that the remote end knows where to send traffic for the local end's subnet.
Alternatively you can use the 'route' and 'iroute' directives. The 'route' directive changes the local routing table, typically for destinations somewhere behind the remote end. If you do this, you MUST have an 'iroute' directive so that OpenVPN knows that it should allow this traffic to be routed.
Both methods will allow hosts behind the local end to traverse the VPN and reach those destinations on the remote end without the hosts themselsves having to know the routes, since the router is doing the routing :-)
Now, if your OpenVPN endpoint (either client or server) isn't the default gateway for the hosts, then you need to do the above configuration, as well as adding routes to the host(s), so that they know when to use the OpenVPN tunnel, and when to use their default gateway. In this case, the hosts are the one's making the routing decisions of which traffic to send to the OpenVPN endpoint, and which traffic to send to their default gateway. When the host sends traffic to the OpenVPN endpoint, the OpenVPN endpoint still needs to know how to get to the other end of the VPN tunnel, so its routing table still needs to configured using one of the two methods described above first.
Again, the openvpn 2.0 howto describes all of this.
Also check your firewall. You need to allow traffic on and off the tun devices. Something like this is /etc/firewall.user should do the trick.
iptables -A forwarding_rule -i tun+ -o $LAN -j ACCEPT
iptables -A forwarding_rule -i $LAN -o tun+ -j ACCEPT
Sorry for the long winded answer on routing, but hopefully that helps.
G