Gates is faster and he does catch more passes than Witten thanks to the design of his offense. But Witten has better hands than Gates.
Look at the stats in 2006.
Antonio Gates caught 120 of 203 passes thrown his way. 59%
Jason Witten caught 92 of 131 passes thrown his way. 70%
Witten has better hands than Gates, and they threw less at him. He is a better pass catcher than Gates. If they had thrown to him 203 times, Witten would have caught approximately 142 passes. 22 more than Gates.
Plus, I believe everyone here agrees that Witten is the best blocker out of all the "elite" Tight Ends. (Cooley might be up there though) And that, to me, makes him the best overall TE in the league.
Tell me, would you trade Witten for Gates? Witten for Winslow, Cooley, Shockey?