Well, if the "Show desktop" icon does what you want, you can simply use it. Ok, I know, that sounded silly, so let me explain:
The "Show desktop" icon is nothing more than a .scf file ("Windows Explorer Command"). You can run a .scf file from the code just the same way you can run a batch or .exe file.
The Start() method in the System.Diagnostics.Process class is all you need.
Probably, you will want your application to have its own copy of the file, so you don't need to figure out where the local user's QuickLaunch toolbar folder is located (actually, it can even be removed, so it wouldn't be a reliable option). If you can't find your own .scf original file, you may create a new one on notepad: paste this and save as plain 8-bit ASCII:
[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop
You may omit the "IconFile=" line if you want, since it only defines the icon for the file. That way, if a user browses the Program Files folder and sees the file, they'll only see a weird .scf file they won't know what's about :P
Once you have the file, you just need to Start() it and everything should minimize.
Now, it's up to you to use this (quite a weird approach, I'll admit), or the Win+D key simulation through raw WinAPI calls. IMO, both options are quite ugly, but they get the job done, so just pick the ugliness that better matches your taste.
Two warnings, however:
First, I haven't tested the process-based approach and can't tell for sure if it will work. I have used Process from time to time to run batches and even start document files, so I'd expect this to work, but I have no compiler at hand right now to make some actual testing.
And second, if you go for paras kumar's approach of simulating Win+D keypress, keep in mind that it is possible to re-configure the Win+whatever key combinations (TweakUI power-toy, manual registry editing, and third-party tools), so in the rare case of power users that have their desktop reconfigured this way, your "Show Desktop" button will do something random, or nothing at all (depending on what has the user configured for that key combination).
Hope this helps.
Regards,
Herenvardö