If I do SNAT under postrouting chain in nat table should I perform prerouting in nat table for the packet returned as reply or it is automatically taken care off by the connection tracking mechanism??
Automatically taken care of. Kernel maintains a table of NAT-ed sessions and automagically sends the return packets to the correct private IP.
You can see this table: cat /proc/net/ip_conntrack