Christian Svensson wrote up a very interesting post on the Unity Boards discussing what's involved in porting their titles over to other systems.Everything is relative... porting in general is as much art as science, depending upon what you're porting from and porting to.
Using SFIV as an example, we've moved from code that had two systems with fixed/known components. On a 360/PS3, we know what GPUs they have. We know exactly how much RAM they have. We know exactly what OS limitations and capabilities are. They don't change from my house, to your house, to your cousin's house.
Porting to a PC in an optimized fashion, has a slew of complexity. We have no idea what OS version your running (XP? Vista? Win 7? With service packs?). What GPU you have. What CPU you have. What motherboard you have. How much RAM you have... hell, we don't even know what driver versions you're likely to have running. So we need to optimize the game to run on countless permutations and setups which is a hell of a lot of work. And on top of that, we added features to take advantage of the fact that some people have PCs that are more powerful than 360s and PS3s. So we added parameters for new rendering shaders (ink, etc.) support for higher resolutions, higher forms of MSAA, AA, self-shadowing, higher quality shadows, etc.
PC users like to tweak things and use a wide array of input devices, so we had to allow for key binding as well as supporting our "preferred controllers" such as SFIV sticks and pads out of the box. For PS3/360, we don't even have to think about those issues.
That's just one example... all of that takes a lot of work and testing. You guys know when we shipped SFIV on the consoles. The PC version was concurrently in development during most of SFIV's cycle... it did take us an additional six months of dedicated PC development on top of that to turn out a finished product.
Could we have done it faster/cheaper or cut more corners? Probably. But that's not going to please fans.
MvC2 is another example, though it's a bit different in terms of how the code is run...
Suffice to say, we're taking what was Naomi/Dreamcast code that has been output in a way that 360 and PS3 can interpret it and making a whole lot of changes to it on the fly.
We have to add a new front end to account for all of the TRCs/TCRs that Microsoft and Sony have with regard to interface standardization and features like trophies/achievements. We have to include new settings and options and online menu support. We had to plug in matching and lobby systems that never existed and that work with PSN and XBL. We had to optimize net code for a game that was never meant to support it (and that is VERY fast paced which makes it that much more difficult).
At the same time, we're doing real-time sprite filtering of everything on screen. Rendering all of the 3D assets in resolutions far higher than they were intended and implementing widescreen support (again, something the original code was never meant to do).
All of these rendering changes never come out the other side "perfectly" the first time so there's a ton of tweaking that has had to be done to get everything looking just right. At some point, maybe we'll show some of the early artifacts that we had early in development before those optimizations took place. Could be eye opening for some of you. :)
We had to fix a few bugs that existed in the original version of the game too.
Suffice to say, the only thing easy about porting is that you know what should be coming out the other side when you're done. In that regard, there's fewer unknowns than with new development. The challenge is, the fans ALSO know what's supposed to be coming out the other side... and if we don't get it right, we certainly hear about it. With new development, those sorts of comparisons don't exist. You can fail in entirely different ways with new development, but with ports, there's no hiding anything.
I could talk about Okami too... which had a whole slew of technical challenges... but I'll save that for another day.