I'd like to use a non-rendering object (say, a filled-in circle, empty, or a sphere) to control the visibility of another object (say, a grid floor). See image below made with Photoshop. The size of the "mask" object controls how big the visible area of the floor is when rendered. Yeah, I know I can do this in post quite easily, but I want to be able to do it within Blender using cycles nodes.
If you only plan to use a circular mask you can use the Object option of the Cycles Texture Coordinate node to use any independent object as mapping origin for any texture.
This will allow using that object's position and transforms to control other material or texture through its position relative to the objects said material is applied to.
To do so just create a circular mask (you can do this easily with a Gradient texture set to Circular) and use it as mask to mix between two shaders. In your case mix whatever shader you liek to floor to be with a Transparent one to make it invisible outside a certain radius.
Use a Texture Coordinate probably set to Object coordinates and use the Object box to pick the desired empty - or sphere - to drive its positioning or scale. You can adjust the radius of the opaque part by scaling the empty.
You can achieve other "mask shapes" easily as long as you can recreate them procedurally with the available nodes. Otherwise you will probably have to use an image based texture for that. You can also try Dynamic Paint if you need the mask shape to actually follow some random object shape intersecting with the ground plane.
apply the Holdout shader to the object you want to use as a mask. It will appear black, but if you want it transparent, activate the transparent option in the render settings under the film panel.
Note that the Holdout shader can only be applied to renderable objects, so empties are not options.
Use a node similar to the one i'm using, you can mix the holdout shader with other "fading" nodes. Note that my transparent octagon isn't casting any shadows or reflections.. thats because I turned off all the ray visibility settings except for camera in the object tab.