Best Canon portrait lenses
The preferred focal length range for portrait photography is 85-135mm. A wider focal length is good for full body portraits and group pictures and a longer focal length range is for tighter-framed portraits such as head shots. Most of the time, a blurred background will be required for portrait. Therefore, larger aperture, at least 2.8 will be needed for portrait. For telephoto zoom lenses, f/4 might be OK in some cases.
For full frame cameras such as Canon 1D, 5D, 5D mark II:
One of the best portrait lenses is Canon EF 70-200mm f/2.8 L IS USM Lens. It is sharp with fast AF, and has excellent bokeh (background blur quality). Image stabilization is great for shooting at low light situations such as indoor. This lens is very versatile and good for group photos, full body portrait and head shots. A new Canon EF 70-200mm f/2.8L IS II USM will be available in Feb 2010. The new Canon EF 70-200mm f/2.8L IS II USM features one fluorite and five UD elements for increased optical quality and reduced chromatic aberration. It has a minimum focusing distance of 1.2m/3.9 ft. at all zoom settings. The most significant improvement over the 70-200mm f/2.8L IS USM is the 4 stops of image stabilization instead of three.
If a wider focal length is required, Canon 24-70mm f/2.8L USM is the one to use.
If you prefer prime lenses, Canon EF 85mm f/1.8 USM, Canon EF 85mm f/1.2L II USM and Canon EF 135 mm f/2L USM are the ones to use on full frame cameras. Prime lenses are best for cases when you have room to move around and to frame your camera.
For small sensor cameras such as Canon XSi or Canon 40D,Canon 50D:
The best portrait prime lenses are Canon EF 50mm f/1.4 USM, Canon EF50mm f/1.2 and Canon EF 85mm f/1.8 USM. For the best bokeh, use Canon 85mm f/1.2L II USM.
The most affordable portrait lens is Canon EF 50mm f/1.8 USM. For the difference of Canon 50mm f/1.8 and Canon 50mm f/1.4, read here.
For group portraits or full body portrait, Canon 17-55mm f/2.8 IS USM is a great choice.