If you're opening your app from an external app you will need to use URL schemes. This will open your app, no matter if it was left running in the background or in fact it was terminated (chances are this also happens).
With this technique, the method - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
will be called in your App delegate.
Look that method up in the documentation to find out more about the parameters you can pass to your app. Usually you'd use a url you could analyse and act accordingly. But if you need to pass some more data, you can always use the annotation parameter, which is a plist you can convert into a dictionary and extract anything you want from it.