Well after 2 hours of searching and applying, I haven't gotten it yet. I found this:http://www.opengl.org/resources/tutorials/advanced/advanced97/programs/billboard.c
and that seemed like it was doing what I want. It takes the modelview matrix and thus all of the transformations I've done into account. However, after implementing it my circles are still never facing the scene and I can't make out any pattern to recognize what it's doing wrong. It's simply all over the place.
I also searched the forums and found some code Tom wrote here:http://220.127.116.11/forums/index.php?topic=3029.0
I tried that, but it didn't take into account the fact that I'm doing multiple transformations AFTER the camera transform. His code did exactly what mine was doing before, making the circles face the screen assuming the gl(u)LookAt was the only transformation.
Any other ideas for me? Maybe some other examples that take into account any arbitrary number of transformations after the camera?