From what I've read, something like 90% of the good stuff gets absorbed by your lungs within one second, and you only get a tiny bit more THC into your body by holding it in for a long ass time. I know for a fact that you get a LOT more tar and other nasty shit in your lungs the longer you hold it in.
As for smoking it right, there are two big mistakes newbie smokers tend to make:
1. Not actually inhaling it into their lungs. If you just puff it into your mouth and then exhale, you're wasting it compeletely.
2. Inhaling it directly and coughing it up right away because it's so hot.
What you want to do is puff it into your mouth without actually breathing it down your throat (it's kind of like a sucking action, you use your mouth to suck it in, not your throat/lungs). Then, you take breathe in through your mouth, so all that smoke in your mouth goes into your lungs. It cools down a LOT just sitting in your mouth for a second, so it's muuuuuch easier to take a big hit without coughing it up. That's how you should smoke a dry pipe, joint or blunt. If you're smoking a bubbler or bong, anything where the smoke goes through water before you inhale it, you just suck it straight into your lungs.
If you're doing it wrong, when you exhale, the smoke will immediately come out in one big plume right away, and then basically no more smoke will come out. If you're doing it right, it'll be more of a steady stream as you empty your lungs. If you always make the habit of breathing in a little air through your mouth at the end, that should pretty much guarantee you do it right.