Both. I love programming so much that nearly everytime I'm at the computer I'm doing it directly or indirectly. Whether it's helping people acheive certain tasks or writing code for my own uses, I love writing code one way or another.
However, I also love the money invovled in the freelance world. I can easily make upwards of $50 an hour for work nearly anytime I'm willing. I've done plenty of paid projects over the past few years and accumulated well over $5,000 from those projects. Last month I worked off and on (maybe an hour or two a day) and got paid $1,000 for the work.
If I had to give advice to those wanting to make money in programming, though. I would have to say that accepting smaller jobs allows more room for a higher pay rate. On a small job (under $500) I could make about $50 an hour. On a large job (over $500) it's harder to make that much and you come out at about $20 an hour, which is still good pay.