I don’t know the limitations of the iphone, but i think it is pretty similar to the web.
The compression of
PNG is good for sharp text, but it has no options on how much you want to compress your image.
PNG 24 will be the way to go, if you have alpha-transparencies and a color palette which affords over 256 colors.
PNG 8 can be compared with
GIF. You can use 256 colors and supports transparency, but no semi-transparent parts.
You have to chose what works best for you. I would recommend, that you use
PNG 24 for images with fine details and a bigger color-palette and/or semi-transparent areas. If you still need a big color palette, but you don’t need semi-transparency and very fine details, then your best choice might be
JPEG (if that is an option). Here you can fine tune your compression for the best file-size/quality ratio. And if you have files with a small color-palette and no semi-transparent areas, the best way to go would be
PNG 8 or
Spritesheets are a good way to reduce the amount of file requests, so this might speed up the app as well.
There are plenty of image-optimization-tools. I am using the image compression feature of CodeKit at the moment, but there are other options. I have not tried enough to give a good advice here.
Edit: I just found a link to http://www.tinypng.org/ in my bookmarks. I haven’t tried it myself, but it is a free service, so you could give it a try.