Minecraft wiki entry for Crop_farming, associated text: As noted above, growth requires a light level of at least 9 in the block above the plant.
The growth probability is 1/(floor(25/points) + 1), where "points" is as follows:
The farmland block the crop is planted on gives 2 points if dry or 4 if hydrated.
For each of the 8 blocks around the block on which the crop is planted, dry farmland gives 0.25 points, and hydrated farmland gives 0.75.
Note that if a field is bordered with anything besides more farmland, the plants at the edge grow more slowly.
If any plants of the same type are growing in the eight surrounding blocks, the point total is cut in half, unless the crops are arranged in rows. That is, having the same sort of plant either on a diagonal or in both north-south and east-west directions cuts the growth chance, but having the same type of plant only north-south or east-west does not. The growth chance is only halved once no matter how many plants surround the central one.