This is our situation, we want traffic that comes in to our server A ip to be sent(tunneled) to a specific ip on server B, and accept replies coming back from server B to server A. How can this be done with iptables?
to ensure that traffic both ways passes the server A run apply on it following iptables rules:
if just forwarding is not enough - i suggest you establish a vpn between a and b [using openvp, ipsec or just ssh port forwarding with a watchdog] and apply similar firewall rules.
In linux you just install rinetd for your distro and configure the parameters, and you are done.
Windows has a port as well: http://www.ehowstuff.com/how-to-install-and-configure-port-forwarding-using-rinetd-in-windows/
Yes, iptables can do that as well but I have always used rinetd as it is more straightforward.