Simple, your firewall or router is blocking pings. The windows XP firewall, for example, has an option to allow ICMP REQUESTs or RESPONSEs, and no doubt Vista or 7 have same/similar option. Almost certainly your windows firewall is blocking it by default. It's perhaps unlikely that your router is blocking it but I suppose that's possible too. Try pinging yourself from another computer to test if it's your windows firewall. That'll help diagnose what is stopping it.
If you can ping yourself from another computer in your house, then.. What's your model of router? It's worth looking up see if you find anything about it it may be that is blocking it. possibly.
Also obviously make sure you're using your private ip when you try to ping, and your friend is using your public ip when they try. (Though if your router supports NAT reflection then apparently that means you can use your public one.)