A major weakness of many players is an inability to change the pace, and thereby throw their opponent's timing off. Not doing so is a quick way of helping your opponent's timing. Many players try to change the pace, but do so unsuccessfully - either because they don't know how to do it, or because they don't really understand the purpose of changing the pace.
Changing the pace doesn't mean hitting a weak shot. It means hitting the ball at a slower pace, but low to the net, with the ball landing shorter on the table. If the opponent is expecting a faster, deeper ball, he'll have trouble adjusting to this.
Against aggressive players, you mostly change the pace to win the point outright via the aggressive player's misses, though be ready to jump on a weak return as well. Against control players, you mostly change the pace to force a weak shot for you to attack.
Also try to find out which side the opponent is most vulnerable to changes of pace. Fast backhand players may have trouble if you suddenly give them a softer return to their backhand, but may jump on a softer ball to the forehand. Big forehand players may time faster balls but have trouble when you suddenly give them a soft one. Experiment, and find what works!