Personally, i have always used Garchomp, the other two in my party have always varied;
from Gallade, Scizor, Infernape, Starmie, Milotic, Tyranitar, Yanmega, Snorlax and Heracross.
People have always fallen victim to using all dragon thinking they must be able to beat everything. So avoid having more than one, if any dragons in your group. Also, have something with a powerful ice move to take on any dragons. Milotic is good because it can use both ice and dragon moves without it being dragon itself.
At the higher levels of the battle tower i tend to only use moves with 100% accuracy. Missing an attack can determine the outcome of the match.
For me, gallade and scizor have always been used first. they are very physical based and both have a large moveset to combat nearly any type. Scizor's ability "technician", as well as a steel boosting item can make metal claw a formidable attack.
My current battle tower party: (in order)
SCIZOR: Technician, Jolly nature, Metal Coat
STATS AT LVL 50
hp: 149
atk: 164
def: 130
sp. atk:72
sp. Def 108
spd. 200
Iron Defense
Metal Claw
Aerial Ace
Silver Wind
GARCHOMP (received off friend), Adamant nature, Draco Plate
STATS AT LVL 50
hp: 192
atk: 180
def: 124
sp. atk: 189
sp. def: 113
spd: 135
Crunch
Dig
Outrage
Dragon Claw
GALLADE, Quirky nature, Steadfast, Focus Sash
STATS AT LVL 50
hp:140
atk: 140
def: 82
sp. atk: 88
sp. def: 132
spd: 96
Close Combat
Leaf Blade
Psycho Cut
Swords Dance
This is all personal preference. This rotating group has been used in the offline, but mainly online modes of the battle tower. It always comes in handy to use one of the starting 3 evos, such as Charizard, Swampert, Infernape etc.