Up here in Canada we have a number of area codes where 10-digit dialling is the norm:
416/647 - Toronto
905/289 - Toronto suburbs, Hamilton, Niagara, Oshawa, Newmarket, Aurora
514/450 - Montreal, Montreal suburbs
604/778 - Vancouver, Victoria (lower mainland)
613/819 - Ottawa, Hull
FYI, this is usually done when an area code is "overlayed" on top of another. For example, the 416 area code was running out of phone numbers, so they just added the 647 code on top. This eliminates the problems of "splitting" an area into one with a new code, and one with the old code. With the overlay system, noone has to change their phone number. People who activate new service are the only ones who will get the new area code. All of this is what necessitates 10-digit dialling, because otherwise the voice switch would not know if you wished to call 416-xxx-xxxx or 647-xxx-xxxx.
Oh, and
thereds, there is no toll charges for using 10-digit dialling. You never have to pay toll unless you start the number with a 1-xxx-xxx-xxxx. (800 #'s excepted) If you were to dial a long distance number without the 1, the switch will warn you and tell you it is a toll call, and to hang up and dial again.

(this is my field of work...)