Does a switch need to be debounced when opened?
Yes, debouncing in both directions is necessary if you want a guaranteed single edge each time the switch changes state.

Fortunately, you don't need any additional hardware for debouncing if the switch is connected to a microcontroller.  If the micro has a internal pullup, which many do, you need nothing more externally than the switch between the micro pin and ground.

I find 50 ms is a good debounce time.  Most switches bounce for well less than that, but a few can be nearly that long.  But, 50 ms will still feel instantaneous to a human user, so you might as well be extra reliable.  The only difference is the number you count to in the firmware, so no extra cost there.  I usually have a 1 ms periodic interrupt for other reasons anyway, so if the switch is in the same state 50 times in a row in that interrupt, then you declare it debounced to the new state.

Details on debounce logic in response to comment:

Generally you will have a global bit that indicates the official debounced state of the switch.  This is what any logic that needs to know which way the switch is set uses.  The only additional state you need is a counter, usually a single byte, in the interrupt routine.  Let's say the interrupt is every 1 ms and the debounce time is 50 ms.  For each interrupt:

If instananeous state matches debounced state:
  Reset counter to 50
  Done

If instantaneous state differs from debounced state:
  Decrement counter
  If counter reaches 0:
    Declare the new debounced state
    Reset counter to 50
  Done