Just to clarify, is the sunroof itself leaking, or is it the common 'broken drain hole'. If the latter, then I can't recommend the simple fix described here enough:
I only needed to drop the front of the headlining down a bit and the fix took, literally, minutes. Not a drop of water in since.