I have a canadian company selling to a European company who's currency is GBP.
For tax purposes should I sell to them in Canadian dollars or should they pay me in pounds?
Modern accounting software will sort out currency exchanges for you, I wouldn't make that a factor. The vast majority of my customers don't use my native currency so the key issue for me is how much I lose via exchange rates. Double check the rate every time currency is converted, especially when a credit card is doing conversion, that can easily lose you 10%.
It doesn't matter at all, for tax purposes (unless your country has some wacky lawys regarding payment in foreign currencies), what currency someone pays you. They can pay you in gold, silver, cash, GBP, Candian currency, or US dollars.
When you look at your business bank statements, what currency do they use? In the end- all those payments end up in that currency in your bank. You can save money by having payment made in your native currency- and thus avoid currency conversion fees. Since currencies vary in relation to each other you can better track your business by keeping all prices in your native currency.
I assume your customer is paying you directly, not through a payment processor of any type. Get your customer to pay you in GBP, and have your Canadian bank do the conversion. You don't want your customer to assume the currency exchange costs, and getting the bank where your main business account is to do the conversion is usually your best deal. Taxwise, it makes no difference, so don't make things needlessly difficult for your customer.
What currency are you paying your taxes in? It would probably eliminate a lot of complexity if you did it in the same currency. Plus the exchange rate won't affect your bottom line as much.