I'm slightly confused; Mono is free and at least partially listed under the GNU GPL. Yet Novell is selling their MonoTouch SDK for money!
Yet Novell is selling their MonoTouch SDK for money
Novell is the leader of the Mono project.
It's their code and they can distribute it with any license they want.
Mono is also under dual-license - see this page.
GPL never forbids selling things -- it's "free as in free speech", NOT "free as in free beer". If Monotouch is a derived work of Mono, and Novell doesn't own the rights to Mono (so that they can "relicense" it to themselves as they please;-), then all that GPL stops them from doing is forbid a buyer from distributing free copies.
As it happens, Novell does own the rights in Mono, so your question is moot -- they can multi-license whatever they own (inc. Mono), one of the licenses can be GPL and another can be a non-GPL one to themselves, and so they can make and sell derived works AND put any license on those that they want to put there.
The licensing for Mono is irrelevant.
When you get right down to it, what they're "selling for money" is mtouch - the tool that sits between Mono and the iPhone dev bits. You can get the framework and the IDE for free (there's a link on the MonoTouch landing page to the evaluation version).
The evaluation version only runs on the simulator, but... it's MonoTouch. And it's free.
The commercial version lets you deploy to an actual phone (you still need an Apple developer account for this (the pay version - not the free one)).
The commercial version of mtouch also has additional features, like outputting an Xcode project rather than just spitting out an app bundle. And so on. And so forth. Etc. And all that.