I use ZoneAlarm which I find to be very good. I tested it using the ShieldsUp website which told me that my ports were all hidden.
But I tried port scanning myself and some ports showed up and the scan wasnt shown by ZA.

Maybe i'm missing the point as I'm still pretty new to this.

Also, how is the IP Address of a certian person found, or are port scans just massive scans of a certain server?