Before the iPhone's release, Apple was very wishy-washy on the subject of third-party development. At first they were completely opposed to it, but after a lot of bad press and user lash back they relented to allowing limited 3rd party development. They promised that as time went on they would allow outside development, with certain restrictions, to appease those who wanted more than just the stock Apple apps.

Since its official release, however, the 3rd-party modications have largely been limited to things Apple is even more opposed to than programs, such as unlocks. As they have not yet provided an SDK for the iPhone, people have been getting antsy waiting for something. That something is nearing, with Apple promising that the iPhone SDK will be available in February. This is a bit of a push back from the original estimation of January. Apple claims the delay is due to concerns over security and stability:

"It will take until February to release an SDK because we're trying to do two diametrically opposed things at once--provide an advanced and open platform to developers while at the same time protect iPhone users from viruses, malware, privacy attacks, etc."
As others have mentioned, Apple faced a losing battle from the very beginning when they decided to lock the iPhone down. I would like to see how they plan to distribute the SDK, and whether or not they are going to be "charging" for the privilege of using it.