A synonymous substitution (often called a silent substitution though they are not always silent) is the evolutionary substitution of one base for another in an exon of a gene coding for a protein, such that the produced amino acid sequence is not modified. This is possible because the genetic code is "degenerate", meaning that some amino acids are coded for by more than one three-base-pair codon; since some of the codons for a given amino acid differ by just one base pair from others coding for the same amino acid, a mutation that replaces the "normal" base by one of the alternatives will result in incorporation of the same amino acid into the growing polypeptide chain when the gene is translated. Synonymous substitutions and mutations affecting noncoding DNA are often considered silent mutations; however, it is not always the case that the mutation is silent.
Since there are 22 codes for 64 codons, roughly we should expect a random substitution to be synonymous with probability about 22/64 = 34%. The actual value is around 20%. 
A synonymous mutation can affect transcription, splicing, mRNA transport, and translation, any of which could alter the resulting phenotype, rendering the synonymous mutation non-silent. The substrate specificity of the tRNA to the rare codon can affect the timing of translation, and in turn the co-translational folding of the protein. This is reflected in the codon usage bias that is observed in many species.  A nonsynonymous substitution results in a change in amino acid that may be arbitrarily further classified as conservative (a change to an amino acid with similar physiochemical properties), semi-conservative (e.g. negatively to positively charged amino acid), or radical (vastly different amino acid).