is there any reason why a developer who produces desktop (non-Web based) software should prefer.NET to another programming language that can do the same job without needing the Framework?
Hi Esposito there are a number of reasons, one of the big ones though is that many developers work for companies (as i am aware you work for yourself), and as a developer you need to be skilled in the languages which are in demand so that you can remain in work.

If you look at the job market not many people are still recruiting for VB6 developers any more where as there are plenty of .Net jobs.

There are also a lot of people who decide not to switch to .NET because they don't want their software to depend on a huge virtual machine.
This is true, but do you not think that as an when Windows 7 finally takes over from XP as the most used version of Windows some of these issue will go away as Windows 7 comes with the framework pre-installed ?