When you've got a good number of photos to show a prospective client, then stop accepting non-paying photoshoot or what I call "portfolio gigs". Some people will take advantage of new photographers who are looking to expand their portfolio by asking them to shoot their event, show or whatever. Sure you get access to these events for free and get the best seat in the house (also read as just below the stage or back stage) but are you using your time wisely or just shooting because you think your expanding your portfolio.
This also becomes a problem when you've started to establish yourself and start charging the same people who you used to shoot for free. They'd think that you've become big-headed or have become arrogant, when the simple truth is your only doing business.
But what about friends you can't say "no" to?
Well, that's your call. But I do suggest that you also charge them at least a minimal amount to make them understand that you take your professional photography seriously.
Or if you do want to take the "portfolio gig", ask what you'll be shooting. Will the photo shoot take you to the direction you plan to go to in photography? Will it be of any use to your portfolio? If the answer is yes, then by all means take the opportunity.
What about fun shoots?
Fun shoots should always be fun. It should not bring any type of pressure during the shoot. Should someone ask you for a CD of the images, you can put a watermark on all the images. It will prevent them from using the images commercially.
While I still do accept free shoots, I mainly do this because either a. I'm shooting with friends or b. I am totally bored and have nothing better to do. But when people say its for my portfolio, I always tell them that I already have one that grows almost every month.