HTML5のCanvasを使って画像にマスクをかけたいと思っていろいろ試してみたので、今の時点のまとめをしてみます。
参考にしたのはHTML5.jpの「globalCompositeOperation プロパティ」の章

結論から言うと、手元のFirefox(3.6.13)で、上記のサイトで書かれているよりも対応状況が悪いように思われました。

FirefoxでNGだった設定値。
・source-atop
・source-in
・source-out
・destination-atop
・destination-in

サンプルページを作りましたので、試してみてください。
サンプルページ

上記サイトのサンプルと同じような画像(以下の2つの透過PNG画像)で、順番も同じにしていますので見比べてみてください。




描画の部分はここのコードを元に、img要素の属性にマスク用の画像のパスと「globalCompositeOperation」に割り当てる用のタイプを設定できるようにしています。

destination-inがやりたかったのにぃ、、、
同じようなCSS3の「-webkit-mask-image」と書く手もありますが、これもFirefoxが対応していないので(-moz-mask-imageとかあればいいのに・・・)どうしようか、もうすこし悩みます。