I like a 32-team league, but with an interesting twist. Baseball, more than any other sport, is ideally suited to a multi-tiered system of leagues similar to what you see in European soccer leagues. How about two eight-team "Tier I" leagues (American League and National League) and two eight-team "Tier II" leagues (American Association and National Association, or something like that).
At the end of each season, the top AL and NL teams play each other in the World Series. The last-place team in each "Tier I" league gets dropped to "Tier II" the following season, while the two teams that compete for the "Tier II" championship get promoted to the top tier.
This enables smaller cities like Pittsburgh and Kansas City to keep their big-league franchises, while at the same time putting an end to the silly notion that they can field teams that belong in the same league as the Yankees, Red Sox, Dodgers, etc. every season.
Now that is thinking outside the box. This system would end all the griping about small market/ big market competition. Spend the money, play with the big boys. Small payroll, you compete with other small payroll teams. The only problem is the difference in how our leagues are set up. In Europe, the soccer teams are all independent clubs that come together to form a league. In the US, each team is a franchise of the overall league.