XNA has a 4x4 Matrix class (MSDN) which can be used everywhere that you might use a 3x3 matrix - just leave the third or last (depends on your usage) row and column as their identity values. In most cases you should just use that. The only benefit of writing your own 3x3 matrix is if you need the smaller data structure (36 bytes instead of 64).
If you intend to apply translation transformations to your 3D vector, then you need a 4x4 matrix. The vector implicitly has a fourth element that is equal to 1. Without going through the maths - this allows it to multiply in the translation elements of the matrix. (Details on Wikipedia, see also)
Matrices can be multiplied together to combine multiple transformation operations into a single matrix. For example:
Matrix transform = Matrix.CreateScale(2f)
* Matrix.CreateRotationZ(1f)
* Matrix.CreateTranslation(10f, 10f, 10f);