So far the only supported way to develop applications for the iPhone is by creating web sites that users can summon from the iPhone's embedded web browser.
While this is an ingenious strategy on a variety of levels, it makes it impossible to create applications that interact richly with the files & data contained on the iPhone. Many frustrated users have resorted to hacking the iPhone to break free of such chains, but that typically results in a whole new set of problems.
Apple has commited to releasing a software development kit (SDK) in February 2008 that should provide developers with the remaining bits of functionality they crave.
Steve Jobs has hinted that applications created with the SDK may be required to be signed with (fairly expensive) security keys that identify the creator of each application. Theoretically this should help prevent viruses and other such nastiness.
Virtually no other information has been released so far about the upcoming SDK.
Read Steve Jobs' Official SDK Announcement