1 - IDE: Visual Studio vs. xcode
Perhaps unsurprisingly, Visual Studio is very Windows-like and Xcode is very Mac-like. Xcode offers a very clean interface with a minimal amount of very large buttons. The code auto-completion in Visual Studio is superior to Xcode, but I believe the latest versions of Xcode have closed this gap significantly. Xcode is very good about using toolbars and accessory panels in consistent ways, so if you're comfortable using the inspector panel in Interface Builder, you'll also be comfortable using the inspector panel in Pages, Numbers, Keynote, iWeb, etc. Visual Studio tends to be very chaotic, i.e. accessing settings for the code editor is different than accessing settings for the reporting services component, which is different than the TFS component, etc.
OS X also offers the incredibly helpful menu search bar, which makes locating the command to open the breakpoints window in Xcode nearly as easy remembering what the key combo is.
The UNIX foundation of OS X, plus Ruby, Applescript and Automator support makes it very easy to script Xcode in whatever language you're comfortable with. Great for automating SCM processes on builds or automated moving of files or what have you.
2 - API: Win32 API (including native C-based Win32 API, MFC, C#) and Cocoa
(Mostly Objective-C)
I can't speak for Windows APIs as I've barely used them, but Cocoa is wonderful. Putting aside any objections people have to Objective-C, it's very rare to hear disparaging remarks about the APIs, they are powerful, easy to use and offer incredibly consistent interfaces, which makes picking up new Apple frameworks pretty darn easy.
3 - Documentation: MSDN vs. ??
Apple's documentation is clean, well written, up-to-date. Almost all classes will contain links to sample projects. Most class documentation of any complexity include sample code, the most complex classes and frameworks will have extensive written documentation, always written in clear and easy-to-understand English.
There's a lot of reasons that namespaces would make Objective-C a better language, but I like the fact that a search for 'NSString' in Apple's documentation will always return the pages I'm looking for.
Most importantly, you don't have to wade through advertisements for other Apple products while trying to use the documentation. :-D
4 - Tool supports: Debugging, profiling, testing, etc.
I'm very pleased with the Apple tools that I've used, but having never used Microsoft's tools, I can't comment on any differences between the two.
5 - Knowledge base: When you have a problem, is it easy to get help from anyone? Are there many books? (In Windows development, there are Petzold, Richter, ...)
I have a lot more trouble getting help on Visual Studio issues. This isn't a fair comparison, though, as we are using an older version of VS where I work. When I Google for an answer on a VS issue, I usually end up on Experts-Exchange or some ancient MS blog. When I Google for help on an Xcode/OS X issue, I usually end up on StackOverflow or one of the many well-written and up-to-date Cocoa blogs out there. It's not surprising I've been a lot more pleased with my OS X/Xcode experience.
In addition, I'm usually able to work for significantly longer between Google-help-queries when doing OS X/iPhone development. The consistent class interfaces, well-written documentation and error messages that explain what you did wrong and how to fix it mean that I rarely need to ask for help to figure out the issues I'm having. That has not been my experience working in Visual Studio. Take this with a grain of salt, as I've been an OS X developer for 5+ years and have been working in Visual Studio for < 1.
6 - Mobile apps: iPhone vs. Windows Mobile
Never touched Windows Mobile, so I can't comment.