cocos2D in its current version supports both iOS4 and the different resolutions of the iPhone, iPhone 4, and the iPad. Frankly, you can do anything within cocos2D.
The main thing to remember as you're learning it is that cocos2D is based on using OpenGL as its graphics mode, so the CoreGraphics stuff (like UIxxxxx components) won't mix nicely with it (though there are some people here who have had success mixing the views). This isn't a cocos issue, it is a fundamental design issue of OpenGL vs CoreGraphics design.
In the same app, you can easily run checks on what hardware it is running on, and you can have your program treat each device differently. A good thread on the topic of supporting high res (iPhone 4, iPad) and low res (everything else) in the same program is [Tutorial] Creating Hi-Res/Low-Res App in Cocos2D 99.4. There's a few different approaches being discussed, with code samples for several approaches.
If you're looking to do 2D game development, cocos2D is a great platform. When I first started developing, I started a project with Core Graphics - it was too slow for what I needed it to do. Then I reworked it with OpenGL - fast, but it has a steep learning curve to understand how to use it effectively. So I switched to cocos2D, and my program was functional in 2 days.
I encourage you to download cocos2D and play with the tests and samples that come with it to see a little of what it can do. Also, take a look at the games store on this site to see the types of games done using cocos2D (like Zombie Smash - a personal favorite). riq is a full-time developer on cocos2D, so an already wonderful tool is getting better all the time.