Quick question before I give a much more complicated answer, involving my experiences in physics, trigonometry, algebra, and past coding experiences: Are you making your own physics engine or are you using the simple gravity simulation included with Game Maker?
shawnachu gave the correct answer in the latter case, and the method he told you is what most games use today: stop moving upwards when you release the jump button.
PHYSICS ALERT: All you're doing is applying an initial force to an object (measured in Game Maker's arbitrary units of "vspeed") and then Game Maker does the rest of the intermediate calculations. The only way to go about essentially modifying gravity in mid-air is to do just that: modify gravity in mid-air (this would look awkward) or to set your upwards movement to 0 and let Game Maker accelerate you back to the ground. On the other hand, if you were to code all your own jumps (sounds like a t-shirt), you could modify the motion in-flight as LPChip suggests by using sine to determine the y-position of your character.
To highlight a flaw in shawnachu's idea: what happens if you are moving down and the timeline is marching on? You COULD use a timeline, or you could do this:
Key Press event:
vspeed = some number
Key Release event:
if(vspeed > 0){
vspeed = 0
};
Since the key press event is called only when a key is pressed, you get the initial burst of force upwards which is slowed down (and eventually sped up in the opposite direction) by Game Maker gravity. Bounds more simple than the way everyone else is suggesting, and, in theory, should work.
As I said, tell me what method you are using. By the sounds of it, you ARE using the Game Maker gravity. If you are coding gravity itself, I can help you there too.