I think what most people value about Java and many other languages is the *apparent* abstracting "away from the guts". It feels less "api-ish" to open a file stream reader object, than to deal with a pointer to a file descriptor or a file io handle. Matter of preference, if you ask me.
Another thing... probably the biggest to many people... is the fact that getting a GUI application running in something higher level like Java or C# tends to be a little easier. You don't often have to deal with message loops, low-level window construction, etc., etc.
For me, it's the fact that, unless I'm dealing with JNI-layered native stuff... which I generally try to stay away from... I *never* have to deal with *any* platform specifics. It's just not an issue. True, that sticking within the ANSI-C language and libraries, that becomes true for C as well, but you almost always need to hit the native APIs - especially when GUI apps are what's being discussed.
Again, I think it's desire and choice more than anything. I like Java. I like C# more and can't wait until Mono fully matures. But let's be very clear.. I don't love C# because it's a MS-born thing. I like it because C# and the .NET CLR spec comprise a "better java than java". Again, it's not innovative; it's evolutionary.
And good.
$.02