People seem to gravitate towards gossip, even if it is hurtful to someone. Gossip is fun until you are on the receiving end of the nosy co-worker who thinks he knows how to do your job or live life better than you. When the gossip also includes unasked for advice -- or criticism -- you may have to tell her to mind her own business for the sake of your sanity and the workplace.
Respond to unasked-for advice or comments, with a polite, yet firm statement such as "Thank you for your advice. I will take it under consideration." This method makes the nosy co-worker feel like he has been heard, but does not obligate the recipient of the advice to really take it.
Deflect the co-worker by changing the subject anytime she attempts to mind other people's business with work related conversation. This might send a clear message to her that you are not interested in hearing what she has to say.
Tell him the truth. Some people do not realize they are being nosy. You do not have to put it in a mean way, but firmly let him know that your personal life is off limits to him, or that his conversation about others makes you wonder what he says about you.
Put it in writing if the gossip is affecting the office morale as sometimes it may. Give her a note which states your concerns, and tell her if the behavior does not stop you will have to take it to the management. This should be a last resort.
Keep your business to yourself to lower the amount of information your co-workers can talk about.