Usually resetting velocity and angularVelocity is enough (of course if you want ti to move at a certain position / rotation you can do this).
The inertiaTensor and inertiaTensorRotation shouldn’t be changed. It’s a property of the physics object like the mass, size. It specifies “resistance to changes to its rotation”. A long thin object can be rotated very easy around it’s long axis, but very hard around the other axis. This information is stored in the inertiaTensor. It is calculated once at start. If you want to provide your own tensor you can do it, but setting it to zero doesn’t make much sense
Usually it’s enough to set isKinematic = true. This will reset all physics variables of that object. When you want to use it again, just set it back to false.
@whydoidoit: The order doesn’t really matter. A position change actually bypass the physics. The two velocities can be reset in any order
edit
You can also call rigidbody.Sleep(). This will force the RB to sleep for at least one frame. This will cancel all current velocities.