I'm curious, how does everyone else make the help system for their program?

I've seen:
Help pages written as web pages and fed to either an embedded or external browser window.
Help pages as PDF files that launch in Adobe Acrobat Reader.
Help pages written in CHM files for the old Windows help system.
Help pages written in XPS files and opened in an embedded browser.
Then there's the help system built into Visual Studio which is completely different...

My company has been doing the last option on that list for a while now, but I've never been happy with the results and some polls taken for me by our service techs tell me that our customers generally consider our help system pretty worthless.

I'd like to implement some type of context-sensitive help, such as a "?" icon on the application that when clicked, will take you to a help screen according to what form is selected in the MDI tabbed browser system it has.

What is the "standard" right now (i.e. what is Microsoft considering the "best practice" in help for the current line of Windows OS)? What do you and your companies use?

Thanks for any replies.