Steve Lafleur explains in this Huffington Post article:
To determine the conditions under which a city can run a successful Olympics, Torontonians should look to the two large North American cities that have recently run Olympic Games and did not lose money: Los Angeles and Atlanta. Vancouver can hardly be considered a success. The Olympics cost the province $925 million, and the city is on the hook for $700 million from the Olympic Village debacle. This does not include roughly $3.5 billion in infrastructure spending, and $1 billion dollars in security costs. Hopefully repaying those debts will take less than the 30 years it took Montreal to retire its Olympic debt.
Los Angeles succeeded because the games were privately funded (including venue construction), and the city shielded itself from financial liability. Atlanta followed a similar model, but was later criticized for over-commercializing the games. Given post-9/11 security concerns, it is questionable whether that model would even be viable. After all, $1 billion is a lot of advertising.