How to find miRNA binding sites on a specific gene?
There are some tools for predicting the binding:


TargetScan (based on seed match [primary], extra pairing, sequence context 1 — nucleotide composition around the site etc [secondary])
miRanda (based on hybridization stability and seed match[primary] and sequence context [secondary])
PicTar (adds a layer of evolutionary conservation criteria)


1 Context means the position of the target site in the 3'UTR and the surrounding nucleotide composition (which is also considered an indirect metric of secondary structure)

miRanda and TargetScan also have classes called conserved and non-conserved targets. miRanda reports miRSVR scores and TargetScan reports context scores but these measures are based on few experimental results and may not always be meaningful. miRSVR is based on change in target expression upon miRNA overexpression/knockdown. It also uses metrics for target site context. Context+ score of TargetScan includes many metrics which include target abundance and conservation along with the regular context scoring. Some of these metrics may be more useful than the others. But scores based just on miRNA OE/KD experiments can be misleading- especially if target expression is quantified just at the RNA level. Target abundance also varies between different cell types. For more details on these metrics refer to the papers corresponding to these tools.

There are some experimental procedures for target determination which mainly involve Protein-RNA crosslinking followed by immunoprecipitation of Ago and subsequent quantification by RNA sequencing. See HITS-CLIP and PAR-CLIP. These techniques do not really find the targets. All they do is to correlate the levels of miRNA and their predicted targets attached to Ago (you won't exactly know if the ternary mRNA-miRNA-Ago complex really formed or not). 

CLASH is a more recent technique which tries to address this issue by ligating mRNA with miRNA. This way you can capture the miRNA-mRNA interaction. However, I am a little skeptical of CLASH; I myself was working on this principle some time back and faced this one challenge. CLASH roughly involves the following steps:


Crosslink protein-RNA
Immunoprecipitate Ago
Use RNAse to digest unbound regions of mRNA (and make it small enough for a short read sequencing experiment)
Ligate miRNA and mRNA bound to Ago using RNA ligase
Degrade Ago using protease
Sequence the miRNA-mRNA ligated pair


My doubt was how would miRNA and mRNA be ligated when the footprint of Ago is bigger than an miRNA (reported ~50-60 nt in HITS-CLIP and PAR-CLIP). When the RNA is nuclease protected then how can it be accessible to ligase. When I was thinking about it then I thought that a partial protein degradation was necessary (after RNAse step and before ligase step) to give some space for ligase to act. Eventually I did not work on it further. Three years later CLASH paper was published and I was happy that someone made it work. But the ligase issue was not addressed (It seems to have worked but I don't know how!!). 

To test the predictions you can use a reporter assay (such as GFP or Luciferase) with the 3'UTR cloned downstream of the reporter. These can have artifacts too. Overexpressing the miRNA should be avoided and seed mutations should be done to ascertain the targetability. 

Another technique to determine a target mRNA is to mask its predicted miRNA binding site and see the effect on the expression. This has been done in zebrafish using morpholinos complementary to target sites but not on other models AFAIK. This seems to me as an elegant assay- no overexpression and you can precisely determine the target site.