GarethRoynon,
this setting works in a situation when there are calls in different skill queues and no available agents. calls are placed in queues and wait some time. when an agent becomes available, system selects a call for this particular agent, considering calls in all skill queues that this agent is assigned to. if call handling preference is set to "skill level", which is default, system picks an oldest call from a skill that this agent has the highest level of. if the preference is "greatest need", system picks an oldest call from any of agent's skills, regardless of the level. do note that "oldest call" in this case means a call with highest expected wait time calculated for a call's skill, not simply a call that waits longest.
a simple example: there are two skills, 1 and 2. there's one call waiting 20 seconds in queue for skill 1, ewt for this call is 40 seconds; and second call waiting 10 seconds in queue for skill 2, ewt for this call is 30 seconds. if agent's skill levels are level 2 for skill 1 and level 1 for skill 2, then if call handling preference is set to "skill level", the system will pick a call from skill 2 queue. if call handling preference is set to "greatest need", system will pick a call from skill 1 queue.
hope this helps.