I've got a plane creator from the wiki but it positions the transform origin at a corner. I need to be able to rotate the mesh about it's center but don't know how to do this.
Create an empty GameObject, you can name it "MeshPivot" or something, and reset its transform. Then make the mesh object a child of that object by dragging it onto it. Reset that transform, too.
Now select the mesh object, and translate it by the negative offset of your desired translation center (for example, if it's a XZ-plane with the lower left corner at (0,0,0) and the upper right at (10,0,10), set the position of the object to (-5,0,-5).
Now you can use "MeshPivot"'s transform for all your transformations.
EDIT: this is a different approach, which does the same, but is more intuitive I guess: http://answers.unity3d.com/questions/11452/change-pivot-of-parent-game-object