As always stated and repeated on every qos post, it would be better to classify all the traffic you can recognize and you need to priorize and then shape the rest.
This is the method i use, and works fine
(100mbit FD as gateway, i shape all the unknown connections [AKA p2p] to 30mbits)
If any customer complains he got a program that works slow and i didn't classify it yet, i study the protocol it uses and make a new mangling rule for it.
There are a lot of examples around the forum and the wiki about good qos and traffic shaping.