Tunnel events are used in WPF for all the OnPreview events. Tunneling makes sense if you want the actual targeted element to be the last that receives the event.
If you have a list box with an item which contains a textbox. Clicking the textbox will consume the click thus not selecting the list box. If you use the tunneled or preview mouse click event, you can select first, leaving it unhandled and then it travels to the text box. Also note that in WPF every event will first fire a preview then a bubble event, if the preview event was unhandled.
Msdn:
Tunneling: Initially, event handlers
at the element tree root are invoked.
The routed event then travels a route
through successive child elements
along the route, towards the node
element that is the routed event
source (the element that raised the
routed event). Tunneling routed events
are often used or handled as part of
the compositing for a control, such
that events from composite parts can
be deliberately suppressed or replaced
by events that are specific to the
complete control. Input events
provided in WPF often come implemented
as a tunneling/bubbling pair.
Tunneling events are also sometimes
referred to as Preview events, because
of a naming convention that is used
for the pairs.
AFAIK the Visual tree is used for traversing, but because MSDN is down i can't look for a proper source.