Mono is using the Low-Level Virtual Machine compiler/optimizer framework for code generation in addition to Mono's built-in JIT compiler. Mono now is able to take advantage of all the optimization work that goes into LLVM, which leads to faster performance but takes greater time and memory than their integrated JIT compiler. Information on Mono's usage of LLVM can be found at Mono-Project.com. LLVM is already being used within the Gallium3D driver framework for optimizing graphics shaders and is also being used by a variety of other software projects for various creative purposes.
Details on Mono 2.6 and MonoDevelop 2.2 can be found in Miguel's blog post.