You can exchange monies upon arrival at the airport and in the banks in Bhutan. You can also exchange at the hotels but some hotels may not have cash and so it is best to change at the banks. Monies changed in local shops who require dollars may pay you higher but it is not legal and also there is usually not much difference to bother with. If you exchange with the authorised ex-changer and keep the receipt, you will be able to exchange it back to original currencies at the bank or at the airport.
Higher dollars, Euro or other currencies fetch little more rates than exchanging smaller notes, but extremely large bills such as $500 or $1000 may not be accepted.
Often some people try to exchange monies before departure from their countries. This is not really necessary but if you must, it would be almost impossible to get Bhutanese currency and so you can bring Indian currency.