I can't write MSIL, so keep in mind that my answer would be akin to the blind leading the blind :)
That said, I think it may be a better question to ask "Why would you want to work directly with MSIL"? The answers would then help you decide if you even need to worry about it.
This question does a pretty good job at going over what you can do in MSIL that you can't do in other .net languages - which is presumably the main reason you'd even worry about MSIL. If things listed here are foreign to you, then read up on those topics first. I'd also recommend reading CLR via C# by Jeffrey Richter if you haven't already. It is definitely something you should read (or be familiar with the concepts covered) before you worry about MSIL (it does go into MSIL, and the things that the CLR - and hence MSIL will allow you to do that C# doesn't).
Bottom line, I'd say that there are plenty of prerequisites to learning to work directly with MSIL, and by the time you've mastered those concepts you'll know when you should break out the MSIL and learn/use it.