This may be painfully obvious to most people, but just in case you are doing what I was doing and pulling your hair out trying to figure out why it wasn't working...
I just purchased a MacBookPro. I hooked up my iPhone to it primarily because I wanted to know if I could back up the calendar on my iPhone to iCal (without having to pay some stupid monthly fee...). Sure enough, it synced right up and worked like a charm. It even downloaded my voice memos to my iTunes library. AND - I was able to see and play the songs that were on my iPhone. Naturally - one might think that everything is in working order here and I can proceed with normal operations...
Nope... If you are having this issue, and you have recently purchased a new computer, what I found out is that you can do everything it would seem EXCEPT load new tunz ONTO your device until you restore it with the new computer's version of iTunes. Which I think is crap, but it's the way it is.
So, after an hour of screwing around with it, I finally got a notice (after updating some preferences, "manually manage songs" etc...) that "This iPhone is synced to another iTunes library, and you'll have to restore it and replace it with THIS iTunes library".
Some people might not think this is a big deal, but I'm a musician, and my iPhone/iPod is a valuable tool I use for learning new songs and reviewing old ones. So, having to rebuild all of my song lists from scratch is a pain. You would think they could come up with a way to verify that you are the user, this is your computer, or your new computer, and then could just start using that computer's version of iTunes instead of having to go through this crap.
If anyone knows of a way to transfer my iTunes Library itself to my new computer, and if that will work rather than having to rebuild all of my song lists, that would be great. And NO, I am NOT interested in the Cloud. I hate being monthly fee'd to death, and I just want to have my data in a place where I know it's not going to get changed, or moved, or I suddenly have to update something to get to it, etc... Or better said, somewhere where it can't be bothered by people and programers who think they are making something better because they looked at it and said "Hey this is great and working perfectly... let's fix that..."
Hope this helps someone not spend and hour on it to figure this out.