Session cookie: A cookie is set without an expiration date, and remains in the browser's memory but is not written to disk when the browser exits.
Persistent cookie: A cookie is set with an expiration date. It is immediately available in memory, and is also written to disk when the browser exits. The next time the browser is loaded, it is placed into memory if the expiration date has not been exceeded.
With each browser that has cookie option settings, you have to experiment with what any particular "blocking cookies" option may mean. I suspect that there is wide variation among browsers.
1. A given block may or may not affect session cookies, both sending and receiving.
2. A given block may or may not affect the availability of unexpired stored cookies that were present before the block was enabled. It's possible that a block is only a block on accepting new persistent cookies.
If you are writing server-side code to delete a cookie that the server has previously set, you should do two things to overwrite the browser's cookie: 1) Set a new cookie with the same Name=Value pair, but leave the Value blank (this kills the cookie in the browser's memory); and 2) Set an expiration date that is a few months ago. Do not go back to 1970 for your expiration date, as some browsers don't do time calculations properly this far back, and might get confused.