.NET is a framework written by Microsoft. That means it's a collection of tools (programs) that work together and allow developers to write programs.
Microsoft also published
ECMA, a standardization effort in order to allow other people to write their implementation of .NET.
Mono is a project started at a company called Novell (used to be very big) lead by a guy called Miguel de Icasa (who also happened to have started a small project in his youth called GNOME). They implemented a new project from scratch that conforms to the ECMA standard allowing them to read and interpret C# code amongst other things.
You can get a lot of information on the mono website, like this question taken from the FAQ:
What is the difference between Mono and the .NET Initiative?
The ".NET Initiative" is a somewhat nebulous company-wide effort by Microsoft, one part of which is a cross-platform development framework. Mono is an implementation of the development framework, but not an implementation of anything else related to the .NET Initiative, such as Passport or software-as-a-service.