How can I specify where an object is rotated from?
The easiest way to do this is parent the object under another NodePath and offset it (with setPos), then rotate the new NodePath.
To clarify; by default, an object is rotated around its origin relative to its parent. So, the best way to specify the pivot point would be to reposition the model in your modeling program such that the desired pivot point is at (0, 0, 0).
If you can’t modify the model itself for some reason, then what teedee suggests works too; create an intermediate node above the node to rotate, offset the node relative to the intermediate node such that the origin of the intermediate node coincides with the desired pivot point, and then rotate the intermediate node.
The Solar-System sample program demonstrates this well.