This is a nice write up of how they work and when they will often be used. Another situation is when you have a number of parameters that might be null in some circumstances, but have values in others.