I usually use PSYM=8 (user defined symbol) for circle symbol.
You can use it like this.
;Define a symbol (Circle)
nvert=49 ;Max for usersym
t=findgen(nvert)
a=t/(nvert-1)*2*!pi
usersym, cos(a), sin(a), /FILL
;Sample Data Generation
npoint=10
x=randomu(seed, npoint)*100
y=randomu(seed, npoint)*100
sz=randomu(seed, npoint)*10
;Make a frame
plot, x, y, /nodata
;Draw each points
;PSYM=8 means using user defined symbol
;Set the size of point with symsize keyword
;We can adjust the size by multiplying some value on symsize.
for i=0, npoint-1 do plots, x[i], y[i], psym=8, symsize=sz[i]
The usersym can accept 49 vertices for maximum. It is quite good number for my usual work.
But if it's not enough, you can find another way on the page below.
http://www.dfanning.com/tips/make_circle.html