I've been using number_format() for a very long time, but recently discovered that within the intl extension there's a NumberFormatter class available too. This is quite a clever class as it is Locale aware and handles formatting currency, including the correct symbol. You can check if you have the intl extension installed using php -m | grep intl and if you don't then you can install it with apt-get install php5-intl or yum install php-intl assuming you use your distro's stock PHP. (If you compile your own, then --enable-intl is the switch you need.)
He gives some bits of example code showing you how to use this object, formatting the same amount for both the typical UK and German Euro formatting. The formater doesn't do any calculations for you, so the number you give it is what will come out the other side (no current exchange checks). He's also created a helper you can use if you're a Zend Framework v2 user.