With my popup, I try to wait to show it until a moment when I feel the visitor is actually interested. At first approximation, that's when they have been on the page more than 60 seconds and scrolled down more than 70%.
Like you mentioned, I also use cookies to ensure people who have already subscribed (or hit X on a previous pop-up) don't see it again.
And thanks for subscribing! I love these random encounters on HN.