If you're using Twitter Bootstrap with the excellent FontAwesome, here's a quick tip to automatically switch icons on a collapse button depending on its current state :

Make sure your button(s) :
- has data-toggle="collapse" and data-target attributes
- is .collapsed in the beginning (I'm assuming the target element is collapsed by default)
- contains an i.icon-caret-up

The following will replace the icon with the one from .icon-caret-down when the collapsible block is in its hidden state :

.collapsed[data-toggle="collapse"] i.icon-caret-up:before {
    content: '\f0d7';