I've been working at home on and off for 35 years (mostly on). I've been very successful at making my work at home experience both productive and pleasurable. When I start working I get "in the zone" and produce high quality work in short order. Then I tried to put together a team, each working at home, to do development, QA, and documentation for various projects. Documentation was the only piece that I could claim worked. I found that, left on their own, my development team became unproductive and the QA team drifted away from the goals I specified and documented. I ended up doing much more micro-managing than I imagined to keep the team productive and focused. My productivity went dramatically down and the quality of my work was suffering from all the interruptions.
As for finding work to do at home, I ended up doing it by circumstance. The company I worked for shut their doors at a really bad economic time. I started a company to develop software products, but ended up mostly consulting and designing hardware and software under contract to keep bread on the table. I developed a reputation for quality work so when a former client started up a new company, he didn't balk on my request to continue to work at home across the country.
The hardest part of working at home is training your family that you shouldn't be disturbed during work hours. I don't know if I would entertain someone working for me at home again unless I saw the same commitment that I have. The worst part of working at home is the isolation from your colleagues and co-workers. I think my company keeps my visits to a minimum because I try to make up the time I wasn't interacting when I come.