The Steam forums describes a complicated method of doing this that I couldn't get working so this simpler method which worked for me might be of use to someone.
1. First I followed the instructions in this post to get split screen multi-player working: http://forums.steampowered.com/forums/showthread.php?t=1847904
A minor issue not mentioned is that you need to enable the console from the keyboard/mouse options menu
I am using keyboard and one wired Xbox360 controller as suggested. Getting the controller to switch to channel 2 was tricky at first but as Chameleon8 mentions plugging it out and in again during loading works. The trick for me was to do the plug / plug out quickly.
2. When game is running make sure you have vertical split screen. Use the console command ss_splitmode 0 if necessary to change it.
3. To get the image split between monitors I went back to the desktop and used my graphics card software (ATI Catalyst for me) to configure the two screens as one big screen. In catalyst this is called grouping and is accessed under the desktop management of the catalyst control centre. I am sure Nvidia cards have a similar feature. Both screens have to have the same resolution so I set them both to the resolution of the smaller monitor. This means a small loss of quality but it isn't really noticeable.
4. With both monitors acting as one big widescreen I ran portal in multiplayer again and this time the image stretched across both screens. I enabled vertical split screen and hey presto player one on one screen and player 2 on the other.
It is takes a minute or two to set up but it is worth it. We are having lots of fun together working through the levels.