XCode is missing some really basic features. Looking at IntelliJ would be a good place to start.
For example, if I create a new class, it should be able to generate empty methods in the implementation file to match those in the interface file, and in any inherited abstract classes or protocols. I'm sick of always having to type the same stuff all over the place. The compiler will warn me if haven't synthesized a property, or if I haven't implemented a method, but XCode itself doesn't help me to generate the missing bits.
Another of the best features in IntelliJ is that you can introduce a new method, or field, just by using it. i.e., you type something like x = myClass.doSomethingSpecial(). If doSomethingSpecial() doesn't exist the IDE prompts you and will create the empty method and let you edit it immediately; no hunting around for the relevant .h and .m files as you have to do all the time in XCode.
Also, the general UI of XCode is just rubbish. If I'm working on a java project in IntelliJ I might have 20 or 30 classes open, and can switch between them using the tabs or by doing ctrl-n and typing the name (or the Capital letters from the camel-case name). Xcode, is completely the opposite, showing you only two files with no easy to flick through a set of files you're currently working on.
So my wish list would be basically this: a better layout for windows (tab-based, probably); auto-generation of code by using an icon/key-shortcut at the point where an error/warning is currently shown. And auto-generation of methods that are defined in an Interface but not in the Implementation. Oh, and automatic (prompted) insertion of #import statements if I happen to use something that's not imported yet.