I have found that Wells Fargo offers better rates, at least for Euros. For example, today XE is quoting a price of US$1.3361 per Euro, while Wells Fargo is selling them for US$1.3142.
Also note that, if you have an account at Wells Fargo, you can go into the local branch and get them without any shipping fees. The one limitation is that many smaller brances have less on hand -- however, they will order some for you at the current rates and get it to you within a couple of days, again without fees. If you can't go in person, you can still get the better rate on line with a shipping fee of only US$8 per order -- which is better than the US$13 charged by XE.