Ben, the "fill" of the circle is coming from your call to UserSym with the /FILL keyword. Removing that will make your circles unfilled. The color you set in the PLOTS call will then be the color of the circle outline (unfilled). A small example is below.
set_plot,'win'
DEVICE, DECOMPOSED=0
LOADCT, 5
!p.background=255
erase
MAP_SET, /Satellite, 36.3000, -111.200, 0,sat_p=[10,0.0,0.0],$
/cont,/USA,zvalue=0,/hires,/noborder,/grid,/horizon,color=0
a = FIndGen(47) * (!PI*2/46.)
UserSym, cos(a), sin(a)
lat = [40,40,40] & lon = [-110,-90,-60]
PLOTS,lon,lat,0,PSYM=8,SYMSIZE=5, LINESTYLE=0, COLOR=122, THICK=5