In order to talk to iTunes you have to send AppleEvents, and there are a few different approaches that you can take:
1) Write the application in AppleScript. This approach is really simple to do, but once the project starts to get complicated AppleScript shows its limitations. You can build full applications, with a nice InterfaceBuilder GUI and all, with AppleScript Studio (AppleScript Application in XCode).
2) Create a AppleScript Studio Application, but use the bridges to do most of your heavy lifting in Obj-C or Java, with the portions dealing with getting the information to and from iTunes being in AppleScript. This is the approach I went with for creating a program to access iTunes (random playlist generator).
3) Use the NSAppleScript to send events. Getting results is not necessarily easy.
4) Use CamelBones (Perl) or Cocoa-Python and use their AppleEvents libraries (really quite nice).
Unfortunately the documentation for doing all of this is a bit spotty, and very scattered. I would have a look over at
CocoaDev, as I keep finding gens there, and while they don't have anything on this specifically,
CocoaDevCentral has a bunch of nice articles.
[edit] Oh.. ya, I forgot about the possibility of using the Carbon AppleEvents classes to do things very manually... I would not recommend this to... well... anyone.