When I install ipython on my osx and run it, I get the following warning:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/
site-packages/I
When pip installs readline, it will never be imported, because readline.so goes in site-packages, which ends up behind the libedit System one, located in lib-dynload (OSX Python path order is very odd). easy_install -a readline will actually install usable readline.
So you can either use easy_install, or use pip and muck about with your PYTHONPATH/sys.path (which essentially means: DO NOT USE PIP).
A bit more detail on the IPython list (though there really isn't anything IPython-specific about this issue): http://mail.scipy.org/pipermail/ipython-user/2011-September/008426.html
EDIT: extra note about virtualenv.
There is a bug in virtualenv < 1.8.3, where readline would not be properly staged when you create an env.