I thought the Arduino is giving me 40mA for each port.
No 40mA is the point at which damage starts to occur. It is not advisable to run it at this current.
You could push it to 30mA but doing so for a lot of outputs makes you run into other limits on the chip like 200mA total through the +5V line and the group restrictions on the ports. See the data sheet, section 28, for full details.
Would i be possible to control light density and color as well?
Yes if you can control colour you automatically can control light density and vice verca.
However you do talk about 1W and 3W LEDs they are a totally different matter.