Reusing geometry through instancing can allow for a tremendous reduction of the memory footprint when rendering complex scenes in RenderMan. Even when working with simpler scenes that contain multiple similar objects, it can be convenient to incorporate instancing into your workflow.
In this example, suppose a teacup will be instanced.
Select the top level group node of the hierarchy that you want to instance, in this case the teacup node.
New materials can be assigned to the instanced shapes. Select the shape in the viewport that you want to assign a new material, and assign in your usual manner. It is a bit disconcerting that all the instances become highlighted. However, the The new material will become assigned only to the shape you clicked on.
Note, there is currently a limitation in RenderMan for Maya where assignment of materials to instances in this way only renders properly for shapes that are only one level below the top of the DAG, like these teacups. If you need to override materials within an instanced hierarchy, it's necessary to turn off RenderMan's "object instancing" feature. RenderMan will still reference the shared geometry in this case, but for large numbers of instances it is somewhat less efficient. Open the Render Settings Window, and under the Advanced tab disable the "Enable Object Instancing" checkbox.
Creating Maya instances and positioning them each independently can become impractical for large numbers of instances. Maya's particle instancer is one approach to instancing geometry at particles.
You'll see an instance appear at each particle position.