From my experience you may define docking sites in 3D structures using knowledge based approaches or de-novo approaches. Knowledge based approach is based on available literature information and it can help you to identify functional sites reported from experimental studies. You may use this information and use in protein-protein docking tools as the location for your docking. Other option is to use the binding site prediction tools or allow the docking software (for example AutoDock can find probable binding pockets) to identify the binding sites. I have evaluated a variety of docking protein-protein docking tools and I found better results with ZDOCK.
Various algorithms are available for finding the binding sites:
For finding binding site based on conservation you may Consurf .
Other option is SiteFinder3D which uses a different approach for identifying functional sites. Since you are working specifically with Protein-Protein complexes you may also try the Pepsite which is a structural method to predict peptide/protein binding. If you want to mine individual interactome of your protein of interest to find interesting functional patterns of peptides for docking studies you may use PeptideMine (Disclaimer: PeptideMine is developed as a part of my PhD)