[I've revised the following from a post I made on a message board quite a while ago, after someone asked for help figuring out how to pronounce ง.งู, that pesky little consonant. I recently ran across it again, and it's actually a pretty good explanation. Enjoy.]
In pronouncing ง (or any sound), consider two important pieces of information:
Place of articulation
Manner of articulation
The sound of ง is pronounced with the back of the tongue touching the soft palate (that is the place of articulation), and it is pronounced by expelling air through the nasal cavity (that's the manner of articulation).
I would guess that tongue position is the problem for most people. To help you pronounce ง correctly, compare it with other sounds that have the exact same place of articulation. In English, these are /g/ and /k/. In Thai, it's ก, ค, etc. Move your tongue back as if you were going to so say a word like "go". When you prepare to say "go," you should notice that your tongue forms a seal so that no air comes out until you expel it in a sudden burst. So /g/ has the identical *place* of articulation as ง, but has a different manner of articulation of articulation. So prepare to say /g/ again, but this time, instead of letting air come out through your mouth, relax your throat so that the air comes out through your nose instead. It's critical here that your tongue *does not move* from where you first positioned it. You'll know your doing it right if while you are saying the sound ง, and you plug your nose, no air comes out of your mouth. That is, the air is blocked.
So ง shares the same manner of articulation with น and ม, but they each have different places of articulation. That is, for each different nasal sound ง น ม, you form a seal, blocking air from flowing out of your mouth, and let it flow through your nose instead. So the trick is to form the seal in the right place. If you form it with your lips, the sound is ม. If you form it with your tongue right behind your top teeth, the sound will be น. And if you form the seal against the soft palate at the back of your mouth, the sound will be ง. If you're not moving your tongue far enough back, and forming the seal at the hard palate, the sound will be like "ny", like the Spanish ñ in word like "año".
Good luck, and keep it up. You'll get it. :)