We ran into something I have seen in other countries but it took us by surprise in Cusco. Though most places take both US Dollars or soles, we found it better to have soles. A LOT of places (in Aguas Caliente as well) will try to play games with the exchange rate to make a few extra two or three soles.
The generally accepted exchange rate is 3 soles = 1 US dollar. However, most places in Cusco (even the really fancy ones) will give you only 2.5 soles for a dollar bill. $5, $10, and $20 dollar bills will get the regular 3 soles exchange rate. So contrary to some of the other postings I read, its probably not necessary to bring any dollar bills.
Also, in Cusco, as in a lot of countries, they will not take any US bills that are even remotely worn or have small tears, fold lines, etc. So be sure your bills are super clean and crisp. This was not as much of an issue in Lima.
We changed some money at the airport in Lima but don't know if that was any better than changing at the banks in Cusco.
Hope this helps!