(First, I'm biased: I'm a professional Java developer, so you just know what I'm gonna say
<br>
I'd seriously look at Java. It's a lovely language to write for - it's clean and well-designed, and just <i>feels</i> right. There's a huge amount of useful stuff in the standard class libraries, and that's mostly well-designed too. There are loads of IDEs and other development tools out there, along with tutorials, books, libraries, even a blend of coffee...
<br>
Speed isn't the issue it was a couple of years ago. The first JVMs were just interpreters, and crawled; later ones had Just-In-Time (JIT) compilers which sped up the code but added a lot of overhead. But the latest one (the HotSpot VM that comes with the JDK1.3 in Mac OS X) is a <i>dynamic</i> compiler: it monitors the code <i>as it runs</i>, compiling code where it's worth it, and making optimisations based on what the code is actually doing - which is more than static C/C++/etc. compilers can usually do. HotSpot flies on Mac OS X - try it and see!
<br>
If you want Cocoa just for the Aqua UI, then you don't need it - the Swing GUI toolkit in the standard library has a pluggable look-and-feel (which means that the look-and-feel can be changed without changing a single line of code, even at runtime), and the default one on OS X (final) is Aqua! I was amazed when I fired up an app of mine and it appeared in glorious Aqua. (I don't know much about the Java Cocoa APIs. Even if they're good, you still lose portability, whereas with Swing you get Aqua <i>and</i> 100% portability!) (Admittedly, the initial Aqua L&F isn't perfect - I noticed a couple of redraw problems - but I'm sure it won't take long for them to get ironed out.)
<br>
And don't underestimate the benefits of portability. No porting worries, no recompiling, apps just <i>work</i>. I sent an app of mine to my mum's PC, and all she had to do was dobule-click on it and it ran. Perfectly. At work, we run stuff on NT or Unix interchangeably. Even my Psion's got Java! If you're sure that you're happy locking yourself into one platform, then fine. But if you ever want your software to get a wider audience, or might one day get a different platform yourself, Java is the obvious choice.