Gyarados is definitely the better choice from gen 4 and up (physical and special moves). Gyarados has amazing attack, plus good special defense. Poliwrath doesn't have any stats over 100. Gyarados also has a mega evolution. Poliwrath is still a great Pokemon. It is very balanced, making it a good choice still.