Inspired by a discussion in this thread.

A quick recap: ICMP (Internet Control Message Protocol) is used in the IP suite "to provide feedback about problems in the communication environment" (RFC792). Besides providing this useful feedback, the protocol can also be (mis?)used to, for example, map networks and recognise operating systems.

What should/do you do with ICMP traffic? Block it entirely, partially or not at all? How do the pro's and con's of blocking ICMP compare to each other? What do you suggest, and why?