I can tolerate using a laptop if the screens big, but otherwise I don't want to program on it.
I have a 23" (1920x1080) monitor and a "20.5" (1600x900) monitor that I use both at one time to code on. I have a high-dpi mouse which once you get used to the sensitivty, is awesome with large monitors. Coding this way is great because I can use one large monitor for coding or UI design and the other monitor for looking up the documentation, reading a tutorial, or watching/listening to a lecture/talk (I tend to need background noise as I code).
I don't really know if my productivity has increased since purchasing a larger monitor, but I know it's much more convenient now.
Although I have programmed on a large laptop before and it was very helpful to code in a quiet place without distractions
At work I use a Macbook with two extra monitors and an external keyboard, but I set it up that way more because I could than because I really need all the desktop space. I have a bunch of terminals on one monitor, web/chat/email on the other, and do all my coding on the third; but I'd be just as productive with two monitors, and the only thing that really gets annoying with a single monitor is trying to deal with chat windows.
Maybe the thing I'd lose would be the ability to distract myself quickly and get back to work without having to move windows around; I might tend to stay distracted for longer periods of time, since the code would be hidden under the web browser (or whatever) instead of just being on the next monitor over.