NGEN *still* requires the IL.
While many people who are "into" .NET may already know this, I still see this come up in the Microsoft newsgroups from time to time. People read a little about NGEN and how it produces a native executable and they think they're in the clear (i.e. don't need to worry about the .NET framework or ILDASM). This is not true. Eric Gunnerson pointed this out in a newsgroup post a couple of years ago. It bears repeating:
Native compilation (ie preJIT with NGEN) does not address this. The whole assembly (metadata and IL) is still installed when this is done. The metadata is needed for class loading and reflection, and the IL is needed in case configuration changes make the native code outdated.
So yes, you can NGEN to get a native executable, but you still need the IL around. And the native code may not even be used all the time (configuration changes).
Also, to get the most out o f NGEN, you really need to run it on the users' system. There are a lot of things for NGEN to consider and you want those things decided on the client machine -- not a developers machine or a build machine.