Thanks for giving way graciously. For the benefit of others, here is my reasoning, with reference to the datasheet at http://www.fairchildsemi.com/ds/BC/BC337.pdf:
The datasheet quotes Vce(sat) @ Ic = 500mA, Ib = 50mA as 0.7V maximum. Therefore, if we could supply 50mA base current, we could guarantee that when passing 500mA, the power dissipation would be no more than (0.7 * 500) = 350mW, which is well within the 625mW (at 25C ambient) rating. However, we can't supply 50mA base current from an Arduino pin. So 500mA is best treated as a limit that we can't reach.
The datasheet quotes hfe as 60 minimum @ Vce=1V, Ic=300mA. Therefore, if we can tolerate a voltage drop of 1V, then with only 5mA base current it is guaranteed that we can switch 300mA with a power dissipation of no more than 300mW - again well within the rating @ 25C ambient.
If we want to switch 300mA and provide base current of more then 1/60 Ic but less then 1/10 Ic, then we can expect a lower Vce than 1V. Unfortunately, we cant make any guarantees in this area. I am reasonably confident that for any BC337 that meets its guaranteed specifications, it could switch 400mA with 20mA base current and significantly less than 1V drop. But I have to confess that this isn't guaranteed by the datasheet.
In summary, I am comfortable using a BC337 to switch up to 400mA from an Arduino, using 20mA base current. Most BC337s will comfortably switch much more than that, but I prefer to design for the worst-case. Above 400mA, there are better BJTs such as ZTX851.
Having said that, if I am making a PCB then I will take advantage of the many low-cost mosfets in SOT23 packages that are available, and probably use a mosfet to switch anything above 100mA.