Many code samples — including Apple's — puts the call to
-application:didFinishLaunchingWithOptions: and that's what many developers end up doing.
For many apps, the app has not yet have a chance to establish its value to the user. So there's a good chance the user will not enable push notifications if the prompt appears the first time the app launches.
Consider showing the prompt only after the user does a certain action such as having walked through a walkthrough screen, or at least describe to the user why it would be good for them to enable push notifications for this app.
It's good practice though to call
-registerForRemoteNotificationTypes for each subsequent launch to make sure you always get the latest user device token (since the user might have upgraded to a new device and restored from iTunes backup), so you probably still want to add the call to
-application:didFinishLaunchingWithOptions:, just make sure to not do it for new users.