Lighting in Minecraft affects visibility, Mob spawning, tree growth, and whether flowers and mushrooms will stay planted. Lighting can be provided by sunlight, torches, fire, lava, in-use furnaces, and certain other objects. 
History: Minecraft has gone through many different ways to light the world. Classics model is simple and only checks whether a block is exposed to the sky. Indevs model is more complex and considers a blocks distance from the nearest sunlight and from the nearest light-emitting block. Alphas model is a refinement of Indevs, calculating sunlight and block-emitted light separately and using a different scale of light intensities. An earlier Beta update improved upon Alpha's model by adding the smooth lighting option, and in a later Beta update, the whole lighting engine was again rewritten to be much more efficient, have more detail, and be smooth in transition of lighting differentials. 
Classic: In Classic, sunlight is emitted by the top edge of the map and will hit any block that is under it. It will pass through transparent blocks to light blocks underneath. Blocks that do not receive light are in a dim shadow that remains at the same level of brightness no matter how far they are from a light source. 
Indev/Infdev: In Indev and Infdev versions there are 16 degrees of brightness, with a maximum of 15 for full daylight and a minimum of 0 for almost complete darkness. Brightness is a linear scale and represents its value divided by 15, so for example 15 is 100% (15/15) and 13 is 86.67% (13/15). 
Each block that emits light has its own luminance value and the light value diminishes by one level each block from its source. If the neighbouring block already has a greater light value, it is ignored. The process is repeated for each block whose light value just changed. 
During the day, sunlight has a maximum light value of 15. At dusk, it steadily decreases until it reaches a night-time minimum value of 4 representing moonlight. Sunlight is emitted by the top edge of the map, but does not diminish with distance from its source. A block lit by sunlight will be equally bright at any height or depth. 
Alpha -Beta 1.2_02: Lighting in Alpha through pre-Beta 1.3 works as Indev and Infdev, except that the scale is different and is not linear. 
Full daylight provides the maximum brightness of 15. Each value below this is 80% as bright as the one above it. For example, 14 is 80% as bright as sunlight, and 13 is 64% bright. This means that Level 0 still has 0.85100% = 3.5% of the maximum brightness. 
Sunlight in Alpha have their own light array and a behind-the-scenes optimization to make dawn and dusk smoother: the amount of light from the sky is pre-calculated and saved along with the blocks, because it never needs to change except when blocks are added or removed. During dusk, nighttime, and dawn, a "darkness" value is subtracted from the sky to create the effects of different times of day. 
In the Nether, light decreases by 10% each level, rather than the normal 20%. This means it will never be totally dark in the Nether. The minimum light value is 20.59%, providing a permanent dim ambiance equivalent to normal world's level 8. 
Beta 1.3 - Beta 1.7.3: Lighting from Beta 1.3 to 1.7.3 works the same as how it was in Alpha, but is greater optimized to allow smooth lighting. 
Beat 1.8 - Present: In Beta 1.8, a new lighting engine was implemented. The new engine has added and changed these following: 
The lighting of an area is influenced by the type of light source that is lighting the block: Moonlight gives a blue tint, torches and lava give a reddish tint, and complete darkness and sunlight are the same as before. 
Changes in lighting are now instant, and can be gradual as changes in the time of day and the state of rainfall now smoothly change the lighting value rather than individually updating the lighting of chunks one by one. 
Using the new instant lighting, non-sunlight lighting now subtly flickers, although this feature is purely cosmetic and has no effect on gameplay. 
Sunset is much more intense and realistic than before, and its intensity dims if the player turns away from it. 
At extreme depths, black fog closes in. At the bedrock level, a torch can no longer be seen from 11 squares distance. This effect is inhibited by proximity to open sky (i.e., the degree to which the place where you are standing would be lit by sunlight), whether or not the sun is currently up. 
When inside the void. lighting operates similar to Classic, where objects in the void will remain at a constant brightness, regardless of how far they travel away from a light source, provided that they remain directly underneath an opening into the void. The brightness of the particular "column" of space is based on the current light level at level 0, the bottom bedrock layer. This applies to all entities, as well as particles. 
Additionally, sitting in the void underneath a shaft which allows sunlight directly into it will remove the void fog, regardless to whether is it daytime or not. 
Smooth Lighting: Smooth Lighting (which includes ambient occlusion as well as interpolating lighting across block faces) is a lighting engine added in Beta 1.3, with the help of MrMessiah.[1] This lighting engine is set on by default, and can be enabled or disabled by accessing Video Options from the Options menu. 
The engine blends lighting to add semi-realistic shadows and glowing from light sources. It darkens inside corners, resulting in small spaces appearing much darker. Before Beta 1.3, the feature could only be obtained by modifying the game with the help of MrMessiah's BetterLight mod.
Bugs: There are lighting bugs on ice and portal when Smooth Lighting is turned on, since the transparency is made by the game, not the textures. 
The lighting on both still and flowing liquids are not smoothed when Smooth Lighting is on. 
If turned off it will sometimes cause a bug where stairs will turn black. [This has been fixed as of Beta 1.9 Pre-Release 5] 
Smooth lighting doesn't seem to have an effect on paintings. 
Glass, if placed directly on another surface, will cast a shadow. 
Smooth lighting doesn't affect players and items when moving from block to block. 
On rare occasions light can render in areas with no light emitting objects whatsoever. This possibly happens when older Minecraft version worlds are loaded into newer versions.