I have used Sygate for years with good result. Meaning that it hasn't caused many problems and seems to monitor outgoing and incoming packets well, has a good way to allow those packets I want to come through or go out, and has a good user interface.