What is the preferred way of doing the conversion using PIL/Numpy/SciPy today?
Edit: Sample pyCMS code:
from PIL import Image
import pyCMS
im = Image.open(...)
im2 = pyCMS.profileToProfile(im, pyCMS.createProfile("sRGB"), pyCMS.createProfile("LAB"))
Edit: Pillow, the PIL fork, seems to have pyCMS built in.
You might use pyCMS (http://www.cazabon.com/pyCMS/) which works with PIL images.
If speed is not a factor, use python-colormath (http://code.google.com/p/python-colormath/).