I'd argue that 30 teams is fine, talent wise anyway. The problem is in the fact some teams are poorly located, or managed, or run.
The Marlins are consistently a joke because their management has, for all but a couple years, been notoriously cheap and see the team as a profit machine rather than a sport where you try to win. I feel bad for their 17 fans cause they went from one horrible ownership to another.
The Rays play in a crappy looking stadium, and their location in St. Petersburg is rather inconvenient to everything outside of Pinellas County. I would wonder how much things would improve though if they got this proposed new ballpark in Ybor City (Tampa) - would they still be cheap like the Marlins, or would they have more fans and funds finally to invest in a better operation?
Montreal seems like it could sustain a franchise, if it had a better stadium.