I have a solid platform engine, using fastloop, and it has perfect collisions, and all.
I've found, playing games such as Commando, or Mr. Stumps Dentures, the longer you press the button, the higher you jump.
How does this work?
I'm using the Platform Movement extension in my game, and it takes care of that automatically.
But for custom movement, I would venture to guess that you'd reduce the vertical velocity by a lesser amount each cycle if the jump key is being held down.
Say for a normal, non-held jump you'd reduce the jump speed by like 10% or whatever each cycle. But as long as the jump key is held down, reduce it by only 8%. That's how I'd try it, anyway.