If you have a web farm, you can't use session variables, since they are bound to a particular web server. Also, session variables take up memory on the server.
Cookies can be used to save information from one session to the next, which session variables can't. However, cookies have limitations too. Each domain is restricted to 20 cookies, and each cookie has a 4k size limit.
A lot depends on the type of application you have, and also the amount of traffic.
nick bulka