If I buy an iPhone app will I have to re-purchase the app if I get a new iPhone?
No, you will not be charged. You can re-download them in iTunes or directly on the phone. You'll have to hit the "buy" button, but after it starts downloading, you should see a message saying you already bought it once. The alert box includes a button to go ahead and re-download the app, which you will then not be charged for.