You’re right, of course - there’s nothing Uber does that couldn’t be replicated.
However, it hasn’t been. As it stands today, I can get in an uber in nearly every city I travel in, and know three things: 1) if I have a problem with the driver, I get to avoid confrontation with the driver (possibly in an unknown city) and can just take it up with Uber itself later. 2) I don’t have to worry about carrying cash, or being pressured to use cash instead of credit by the cabbie, and 3) If I’ve contacted an Uber to come get me, I can clearly see where they are, who they are, and when they’ve arrived, before they get there, instead of having to trust the dispatcher’s estimate as to the Cab’s arrival.
On top of that there’s a record of the exact route I was taken on (and when), and the fare pretty clearly laid out before I’ve even stepped in the vehicle (oh, and I’ve had the option to choose the type of ride I wanted, too). None of that is beyond the capability of the existing taxi system, but currently this level of convenience doesn’t exist with any other carrier.
If Toronto started offering a local app that let me track rides, take disputes out of the heated situation of the here and now, and handled payment, I’d probably use it locally (or regionally, or whatever), especially because Uber itself seems like such a vile operation. But for international travel, I literally feel safer in an Uber than taking my chances with each local cab monopoly.