You hit the nail on the head, it depends on what you want to port. It is sort of like the question, "how long is a piece of string"
If you are lucky and all the functions needed are present in the native SDK it can take as little as a few hours / day. Sometimes they can take a few days.
A while back it would take a long time, the SDK was very bare bones but these days it can handle quite a lot (look at the native port of VICE we now have, this wasn't possible a year ago).
Best thing is to just get stuck in and have a go. Ideally try and port to Linux (and/or) Windows so that debugging it is easier if there are problems. It also gives you a good base working line to compare with.
Your first port will be the slowest but once you've done one, the next time it should be much faster. Porting can be much quicker than writing your own software and it can be a good education about good (and bad) coding practices. I think zear started out this way, porting first and picking up more experience to help with his new game project.
Often, a well written app/game will port very quickly and easily, porting is hard when no thought for cross platform running was made. Those are more tricky, which is why getting it to run on say both Windows and Linux is a good first step.
One final tip, if something is missing from the native SDK, consider adding the code to the SDK!
We'd love to improve the SDK.