Here is a script button that invokes IPython in a separate process, so that IPython will run without blocking Leo. You should run Leo from a console window; otherwise you won't see IPython at all:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet ekr_stylesheet?>
<leo_file>
<leo_header file_format="1" tnodes="1" max_tnode_index="1"/>
<vnodes>
<v t="ekr.20060601171501" a="V"><vh>@button Ipython</vh></v>
</vnodes>
<tnodes>
<t tx="ekr.20060601171501"># C:\Python24\python.exe C:\Python24\scripts\ipython

# You probably must be running Leo in a console window to see Ipython...

import os, sys
pythonDir = g.os_path_dirname(sys.executable)
ipython = g.os_path_join(pythonDir,'Scripts','ipython')
print ipython
args = [sys.executable, ipython ]

if 1: # Use present environment.
    os.spawnv(os.P_NOWAIT, sys.executable, args)
else: # Use a pristine environment.
    os.spawnve(os.P_NOWAIT, sys.executable, args, os.environ)</t>
</tnodes>
</leo_file>

Just copy this code, then paste it into Leo using Leo's Paste Node command. You can run the script directly. The next time you open the outline you will see an 'IPython' button.