Sorry for the long answer. There are two parts to your question. I'll talk about Universal Apps first:
The iOS API is resolution independent, and it is possible to write applications that adapt to any screen resolution. The developer needs to add generally a small amount of code to make an App "Universal".
That said, most UI's built in the SDK's Interface Builder are resolution and device specific. (i.e.: built for iPad or iPhone.) This is generally done on purpose, as you don't want the same user interface on an iPad as you have on a phone.
As you start adding advanced UI elements like "split views", "popovers", etc to your iPad user interface, you need to add code to handle the UI differences.
Coding in iOS is a bit like Ruby on Rails where the framework is based on a Model-View-Controller design pattern. Once your UI changes significantly, you end up writing a View/Controller for iPhone, and a View/Controller for iPad.
It's not so much that the resolution is different, it's that the big screen allows for a different approach to the user interface.
Okay -- so what if you have an iPhone 4 App running at 640x960 and you just want to display that in a 768x1024 iPad?
At first it seems simple, just create a ~60 pixel black border around the app and center it. That's doable, and Apple could have done it in iOS 4.x. (They may still decide to do it.) The problem is with the whole resolution independent nature of the API. Apps running on iPhone 4 / iPod Touch 4 screens have a much higher pixel per "point" than iPad or iPhone. A point is an arbitrary distance measurement used by iOS. When you take this approach, most of the graphic UI elements are overblown and look ugly.
I think this cosmetic issue is the reason Apple decided not to support a 1-1 mapping of iPhone 4's 640x960 resolution to iPad. It wants to push developers to create a Universal App.
As I said in the first part of this post, the Universal part is pretty easy. The real work comes in when you start doing a new, custom UI for iPad.