Sean,
I don't blame you (and Mark) for being confused about this, but I'll try to explain.
Methods (such as AddCircle) typically both *do* something (eg add a circle) and *return* something (eg the newly added circle object). If you need the returned object for further processing then the left side of the statement needs to assign the returned object to a variable.
Set MyNewLine = ThisDrawing.ModelSpace.AddLine(pt1, pt2)
If you don't need the returned object then you can omit the assignment part of the statement. The parentheses around the arguments are also omitted in this circumstance.
ThisDrawing.ModelSpace.AddLine pt1, pt2
Now in your case you are using an AddCircle method, and the Help says that the return value from this method is "The newly created Circle object". If you are going to assign this object to a variable it needs to be of type AcadCircle, whereas you were trying to assign it to a variable of type AcadBlock (ie blkMyBlock). It would seem from the context that you only wanted to *do* the method and didn't need the *return* value which is why Mark's solution worked for you.
Hope this helps.
Regards
Wayne Ivory
IT Analyst Programmer
Wespine Industries Pty Ltd