I've used GPS and laser Rangefinders, and here is my take:
GPS:
These mostly work well, but don't give you exact yardage to the pin. Fine for longer clubs, but almost useless under 100 yards. The advantages are the fact you don't need line-of-site, and the advanced ones can give you yardages to water hazards, bunkers, etc. Also they are now small enough to be put into a wristwatch size. They have one HUGE problem, though. About once every couple of rounds they will give you a yardage that is WILDLY wrong, and you'll find yourself airmailing a green or coming up way short.
Laser:
Lasers require a direct line-of-site to the flag, which can often be a problem. If you don't know the proper techniques for using them you can get wrong yardages in certain circumstances. If there is no wind and the flag is limp, it can be hard to acquire yardages beyond 150 yards or so. On windy days can be hard to hold steady. The advantages, though, are exact yardages to the flagstick, making them invaluable from 100 yards in. As long as you know the right techniques, you'll have a yardage you can 100% trust. They have long battery life. The can also give you yardages to any visible feature on the course, great for deciding what club to use to layup on a par 5 or when choosing a line off the tee.
IMHO
I picked laser and here is why; I hit my wedges very reliable distances, and the laser gives me exactly the yardage I need to hit them stiff. On average the GPS units will be off anywhere from 5 - 10 yards, which is just not acceptable. Plus I don't care as much about the yardages beyond 150. And there are ways to work-around the limitations of the laser, not so much with the GPS.
Here are my tips for getting great yardages out of your laser rangefinder:
Always shoot the flag 2-3 times and make sure you get the same yardage each time.
Understand that the laser can accidentally pick up trees or mounds in line with the flag. If the trees and/or mounds are potentially giving you a false reading, pan the range-finder a little away from the flag and shoot the distance to the mounds or trees. If you get the same reading to the pin as the trees/mounds, you know you have a bad yardage and can try again. You can also shoot the distance to the front of the green to sanity-check the measurement as well.
If you don't have line-of-site, do the following: Walk toward the green until you reach a yardage maker with line-of-site to the flag. Shoot the distance to the flag and compute the difference between the marker distance and the actual distance. Then step off you distance like back in the old days and add/subtract the difference. This should give you a fairly precise yardage.