MouseState ms = Mouse.GetState();
Vector3 mPos = new Vector3(ms.X, ms.Y, 1);
mPos = graphics.GraphicsDevice.Viewport.Unproject(mPos, Matrix.Identity, Matrix.Identity, spriteBatchMatrix);
But this doesn't work. I'm hovering my mouse over a known coordinate and mPos isn't even remotely close. It also appears to be a normalized value.
Edit: I should have googled harder. I found the solution on stackoverflow.
MouseState ms = Mouse.GetState();
Vector3 mPos = new Vector3(ms.X, ms.Y, 100);
Matrix tMat = Matrix.Invert(spriteBatchMatrix); //spriteBatchMatrix is the translation matrix passed to SpriteBatch.Begin
mPos = Vector3.Transform(mPos, tMat);