You're going to need to connect to some kind of resource that either never changes or changes very infrequently. I see a couple of different approaches.
Proxy Approach
You could set up a master server (http://masterurl.com/) that proxies your request to another server. The idea here is that the master server never changes, but the machine that it proxies to could change at any time. For example:
Assuming your iPhone app connects to http://masterurl.com/:
All requests to
http://masterurl.com/ are proxied to http://someotherurl.com/.
At some point in the future, you
need to replace
http://someotherurl.com/ with http://snazzynewurl.com/.
Now you can just change
http://masterurl.com/ to proxy to http://snazzynewurl.com/.
To your application's user nothing has changed and you don't have to update your app and re-submit it for review.
Location File Approach
You could get the location from a file, like a txt or xml file.
Assuming your file lives at http://someurl.com/location.txt and the contents are simple:
inside location.txt:
http://someotherbaseurl.com/
Your app would then read in this text file and use http://someotherbaseurl.com/ as a base url for the rest of your app. Now if you need to make a change to the URL, you can just update the text file.
If you're taking the location file approach, I'd recommend hosting the file using Amazon S3 or Rackspace Cloud Files so that the text file is available over a URL on their content delivery network.
I'm sure there are other ways to tackle this. Either way you'll need a master URL that changes never or seldom. Otherwise you'll run into a situation where you'll have to re-compile and re-submit your app.