If you are strictly looking at mitigation (i.e. reducing probability and/or impact), then building buffer into a project timeline between an internal milestone target date and the committed customer date has always worked well for me.
However, I'd second Sante's feedback as my favorite risk response is avoidance, especially at the onset of a project, where you have the opportunity to jettison particularly risky scope elements in order to reduce the project's overall risk profile.
Samer, as a PM-instructor, I shock many people with this comment, "Mitigation is the third worst way to deal with negative risks!" I'll condense my one-hour lecture into the key conclusions: 1-Avoid all negative risks, if you can. 2-If you cannot avoid the risk, transfer it to someone better able to deal with it. 3-If you cannot pay someone to take the risk (transfer), and then break it down into manageable parts so that the sum of the probabilities and impacts is less than the unmitigated risk. 4-If you cannot mitigate the risk, accept it with a Plan B, Plan C, Plan D, etc. (Remember all plans including B – Z contain risks unique to each alternative plan!).
To answer your question, my best mitigation technique was designating “lead”, “support” and “as needed” teams for each of the key portions of a large project. Knowing that if the “A-team” became overworked, the “B- and C-teams” were standing by gave the Sponsor and team peace of mind. It also motivated the “A-team” to work to avoid (notice that word) needing the B-team! Jim Saving Changes...