You have to create the matrix, translate it to where your sprite is, substract it the pivot's position (where you want the "hinge" to be), rotate the matrix to your wanted angle (in radians), add the pivot's position. Then apply it to your sprite.
var m:Matrix = new Matrix();
m.translate( spritePosition.x, spritePosition.y ); // Not the actual x and y of the sprite you're applying the matrix to!
m.translate( -pivot.x, -pivot.y ); // x and y of the pivot sprite
m.rotate(whateverRotation); // in Radians!
m.translate( pivot.x, pivot.y);
sprite.transform.matrix = m;
Here's a FLA with an example. The star has its center in its top left, and you can move the pivot and it will rotate correctly around that:
http://dl.dropbox.com/u/64314/forums/pivotedRotation/pivoted_rotation.flaHere's the SWF:
http://dl.dropbox.com/u/64314/forums/pivotedRotation/pivoted_rotation.swfAlthough if you're working with box2d maybe it's better to always center your sprites. Why can't you do that?