The best was the Sinnoh League. It brought back old faces, some for long overdue appearances (Bayleef, Corphish, Muk, Totodile, Glalie) and others who were made awesome (Quilava, Heracross, Noctowl, Sceptile). Also Ash and Paul's battle had suficient build up throughout the series that Ash's win in their battle meant something (the same could be said for Gary, but their rivalry wasn't so intense.) The only downside was Tobias, but to me it wasn't his inclusion or his pokemon that were the problem. It was that most of Ash's pokemon in that battle were there to take the hit, and Ash could not put up a decent battle with most of them. It would not have been so bad had there been a two episode struggle as opposed to what we got, which was essentially BAM - you're out, BAM - you're out, BAM - you're out...
Second best would be Johto. You had the culmination of Ash and Gary's rivalry, the battle against Harrison and his Blaziken-centred team was done well everyone (except poor old Kingler) got their moment on the battlefield.
Third would be Hoenn. Some dodgey moments where the ol' "anime physics" got a little rediculous, but aside from that the league was relatively well done, and its the first (only only) time that Ash's league challenge consisted of three six-on-six battles (how this got him in the top 8 when he only battled in two six-on-six battles in Johto and still was top 8 I'll never understand!) I thought that Ash's battle against Katie was particularly cool, especially as Ash doesn't often compete against girls, far less girls who prove to be tough opponents.
Fourth if the Orange Islands. Okay not technically a league as he had to beat four gym leaders and the champion, but still this one Ash was actually allowed to win. Charizard was finally listening, Lapras finally got her second move, Bulbasaur and Squirtle got their moments, we found out just how strong Ash's Tauros really was (knowing Fissure and throwing about Venusaur and Dragonite like rag dolls) and Pikachu proved to be so strong that from then on at the start of every series they had to find some mildly plausible way to spectacularly nerf his powers to put him on par with all the other pokemon Ash was catching in that region!
Fifth is the Kanto (Indigo) league. The positives were that Krabby and Muk finally got their battling debuts, as well as exhibiting moves for the first time since Ash caught them, Krabby became Ash's first (and so far only) water type to ever evolve, Squirtle finally got his fourth move (withdraw) and Pikachu surprised everyone by performing a spectacular, one time only Double-Edge attack. The negatives - not enough Gary, Team Rocket caused Ash to be unable to use Pidgeotto in the final battle, forcing him to rely on Charizard, who screwed it all up. They couldn't even give us a six-on-six battle to go out on.
Last, obviously, is Unova. Trip ultimately severed no real purpose, Cameron was a doofus, most of Ash's pokemon were pathetic, Ash didn't get to battle Virgil, I wanted to see at least one more pokemon each from Bianca and Stephan (in addition to his Liepard), I wanted to see that at least one of Trips other pokemon hd reached its final form (Tranquill, Vanillite, Frillish, Lampent) and Ash regressed in his league standing.
The only good things were that Palpitoad and Leavanny finally completed a four move set each, Ash and Stephan's battle was decent, and Virgil made Cameron suffer sufficiently in their battle. Oh, I also liked that previous characters, especially ones from the various mini tournaments (like Dino, Flora, Katherine and Antonio) were shown to participate in the league as well. Added a nice, extra dimension to things. Though sadly this was not enough to make up for the rest of the league's shot-comings.