This article goes through the whole process of creating fragment level phong illumination lighting. Both the theory and implementation is explained in detail. Pixel and vertex shader version 2.0 in DirectX 9 is used for the implementation.
This article was also published in the Shader X II book.