GameSalad is good for either quickly prototyping ideas, or if you want to develop an iPhone game on your own but don't know anything about programming. If however you have even a little familiarity with programming then GameSalad has many significant cons. The most significant con is that it is simply a very restrictive development tool; I haven't looked at it in a long time so I don't know what features it has now, but last time I looked it didn't even have arrays (if you think about it, how could you represent arrays without programming?) It's hard or impossible to access a lot of iOS features, like Game Center. And then there's poor performance.
Cocos2D is a much more flexible and powerful development tool, but on the downside it's also considerably more complex to use. Working with Cocos2D you will be programming in Objective C using XCode; you can implement literally any feature that iOS is capable of, but it'll be a lot of work.
There is a middle ground you didn't mention: mobile game development platforms like Corona and Moai. These are tools that aren't quite as flexible as Cocos2D but are considerably more flexible and powerful than GameSalad. Meanwhile they use Lua for all the programming so working with these tools is considerably simpler than using Cocos2D. If you haven't done so already, I would strongly suggest evaluating one or both of these.