After experimenting, I found two decent methods.
You can make a path with a thick, round cap/join stroke. If the two circles are the same size then you can Object > Expand... and this will sufficient.
If you want each end to have a circle of a different size then you can then use the stroke width tool (Shift+W) to adjust each end. This works okay and remains editable, but doesn't always give perfect results... Especially if you start doing more complicated shapes with corners. See the following gif for an example:

Alternatively you can use the Blend options between the two circles. This will best be explained through a few screen shots:
Here are two circles.

With both circles selected Blend them with Object > Blend > Make.

You can adjust the blend with Object > Blend > Blend Options. Select 'Specified Steps' in the 'Spacing' drop down and enter a value of between 50 and 200. Higher than this may start to slow down your system if there are a lot of blends in your file, low values may affect the final result.

The individual circles can be moved (I've now changed the outlined circles to filled circles) and the blend will follow.

At this point... The blend is still editable and the result is good as a draft. However, as in my case, there is actually 100 circles making up this shape, I may want to simplify this shape once I am happy with it, or as I am finalising artwork. To do this, first Object > Expand.

You can then open the pathfinder tool and merge all of the resulting circles with the 'unite' option.


If you want to further refine the edges between the two original circles then you can delete all of the path anchors between the tangential anchors...


And re-join them with the pen tool.

This should create almost perfect tangent joins between the two circles. You can also do corners with the blend tool, more complex shapes with multiple circles, or even colour blends. I like this method for when accuracy is needed to make great logos or pictograms. The stroke width tool certainly is quicker and has it's place however.
Please see CAI's answer below for scripts that work very well for making tangents connect perfectly.

