Witten is better all around, but Gates is pretty dynamic as a receiving option. That is why he has twice as many career TDs and averages more than a yard per catch than Witten.
I take Witten over Gates because he is already in Dallas. I would take Gates over Witten if the roles were reversed. I would not trade Witten straight up for Gates at this point. I think Witten works better for Dallas because of the chemistry he has with Romo. Chemistry goes a long way. I would also not complain too much if Dallas lost Witten and got stuck with Gates.
Both guys are great and currently the best tight ends in the game. It is hard to say that one is better than the other because they both excel at what the do and are different type players. Any team would love to have either guy. I would and am very happy with Witten.
Now this was really about Bennett. Bennett is not Gates. I think he is talented, but he probably will never be Gates. I think he will become a stronger blocker than Gates, but he will never be as good a receiver as Gates or Witten. He is an excellent compliment to Witten. The odds are that Witten will be in Dallas longer than Bennett. Witten is only 26 this season. Bennett will most likely want to pursue free agency after his rookie contract expires. Dallas can trade him before then or just let him go.