There are 2 rent-seekers in this system. One is the City, which uses these taxis as a revenue stream. Why? We are all paying taxes anyways; why should we pay the City for the privilege to ride a car? And then there's the medallion owners. In the old days, the politically connected got these medallions for peanuts, and are just sitting on them, collecting rent (corruption, anyone?). And surrounding this system is a parasitic bureaucracy for "managing" everything: medallion rentals, credit card transactions, etc. (and we, the taxpayers, pay for this bureaucracy again).
A better solution, IMHO, is the following. Auction off 20% of the medallions every year, using a Dutch Auction. The participants in the auction must be licensed drivers with N years of experience, and must pass a test about familiarity with the City. A driver can get only 1 medallion. The City, as a favor to drivers, can bring banks to the table, who can finance drivers. Each medallion is for 5 years; after that period, the medallion goes up for auction again.
[1] There was a case recently where the driver was headed to the airport with passengers. He was speeding so he could get back there as quickly as possible (there's a weird rule that if a cab leaves the airport but comes back within 30(?) minutes, it can come back to the front of the line). He had a mechanical malfunction, and the cab caught fire. He survived, but his 2 passengers burnt to death. http://abclocal.go.com/kgo/story?section=news/local/san_fran...