Going on a trip? Need US$ Cash or EUR before you go? Or need to pay off your US$ denominated Mastercard with US$ cash at a Canadian bank branch, as I often do with my US$ BMO Mastercard?
I typically find currency exchangers to have better rates than banks for US$. Usually you'll get a 1% better rate from a currency exchanger than you would from a bank. The banks have largely similar rates, and the currency exchangers will usually beat them by a 1% to win your business.
For small amounts of currency (in the two to three figures range), this is your best deal to save a few bucks.
Look in your yellow pages and via Google for one that's local. Don't bother with one that doesn't have a website (they obviously don't want you to compare) and don't bother with places that focus on cheque-cashing or pay-day loans, their rates are typically... predatory.
I've received reasonable rates from Currency Converters in Waterloo Ontario, and from the various walk-up places in downtown Toronto (check their rates against xe.net on your smartphone, or just before you leave, but they tend to be reasonable).