I'm not sure if this is the best way to go but I have added a static hashmap of exchange rates to my MonetaryAmount class which is populated daily by my XRateAction class (gets latest rates from Yahoo). The MonetaryAmount class has methods for convert(MonetaryAmount, Currency), add(MonetaryAmount), subtract(MonetaryAmount), equals(Object) and compareTo(MonetaryAmount) which make use of this hashmap to reflect the value of the amount in the user's preferred currency (stored on the User object).
This reply is a bit late :)
I would design it that there is MonetaryAmount on all products, and a preferred currency for the users.
I would do the conversion separate from both, in a (JSF)-Converter.