How do you create a rotation matrix that will represent a rotation of angle theta about a vector (x,y,z)?

This is instead of rotating about an axis.