The full form of CLR is Common Language Runtime.
A runtime is an environment in which programs are executed.CLR is a nothing but the runtime enviroment.CLR is the heart of .NET.
It executes MSIL code.
Another key feature of the .NET CLR is garbage collection.It is responsible for destroying objects which are no longer in use.
The CLR's garbage collector checks the heap for unreferenced objects and frees the memory used by these objects.
Common Language Runtime - It is the implementation of CLI. The core runtime engine in the Microsoft .NET Framework for executing applications. The common language runtime supplies managed code with services such as cross-language integration, code access security, object lifetime management, resouce management, type safety, pre-emptive threading, metadata services (type reflection), and debugging and profiling support. The ASP.NET Framework and Internet Explorer are examples of hosting CLR.
CLR is a RunTime, CLR is used to run .net programs, we can say CLR is heart of .NET
As the others are correct, I'd like to add another reason why one may choose to implement a CLR project. Occasionally, there may be the desire to create a library in C# that you may want to expose to SQL Server. You can deploy a CLR project directly to SQL and, with the proper attributes, have all types of Stored Procedures and functions available in your SQL context. It can be useful, however now that DB Projects are shipping and the latest SQL Servers are so robust, they aren't as attractive as other options may be.