Distance is the problem but the route chosen by ISPs to send data to different corners of the world is also to blame at times. DNS has little to do with your ping. Using an DNS server hosted in the US that pings 200ms from India instead of using a local DNS pinging 10ms isn't going to help (even if it were possible to get lower pings by switching to a different DNS

)
Your best bet - Asian or European servers. You should gets between 80 - 180ms to these countries. Some of the newer games have great net code and hit-registering techniques so you can still have a good experience with 150ms pings. Games like Team Fortress 2 have picked up in India. You'll find a few Indian servers and looooooooooads of highly active EU/Asian servers.