A frequent issue when creating iPhone applications is that if you need settings for your app, where do you put them? There are two sides to this issue, and both sides have good arguments: you can either put them in your app or put them in the Settings app.
I believe every developer wants to make their app simple and easy to use. The last thing anyone wants is for users to fumble around an application helplessly looking for how to do something.
On the Mac, System Preferences has settings for all of system-related functions. You can change system-wide appearance, desktop picture, energy saving options, sounds, and update your computer when needed. For all applications that you may install (or even the ones that come standard in your Applications folder), they have their own settings. This is most useful because they’re easy to get to from each app.
If I’m at home, maybe I want to share my iTunes Library over a network without a password. If I’m out, I may not want to disclose my iTunes Library to everyone. Appropriately, desktop applications have their settings built in to the app. (But if there was an iTunes section in System Preferences, it would not be terrible.)
The case is different on a mobile device. Screen real-estate is more precious, but still the most important thing is ease of use. A settings icon is a simple and good solution. It would be cumbersome to switch out of the app to change settings related to that app.
On iPhone, you can have one application open at a time. Quit the app, launch another app to change the setting, quit, go back, check if it worked how you intended. Especially if the user would like to experiment with a few preferences, this is a drag.
Aside from the usability concern, I have a fundamental one. See these ×’s? This means your app is temporary. A user can delete your application whenever they so choose. The applications that come standard on the device cannot be removed, and have all the settings they require in the Settings app. Your settings should be in your app, as they are just as temporary as the application itself.
This is different if you see preferences as things users should not change too often (or ever). But I believe designers and developers should make it difficult for people to change these alternatives and experiment.
In addition, when someone is using your application, they only see your app when it is open. How do they know there are preferences in another app? If you cannot find room for in-app settings, maybe you should reconsider your UI.
iPhone is a mobile platform, but we do have desktop-class applications. iPhone runs OS X, but we have to simplify, choosing which features to keep and which ones to remove (if you have a desktop counterpart).
This is not about if the user is going to change settings often, it’s about making everything easy for them to do. Leave the Settings app for system-related preferences and built-in applications only.