From the box2d manual:
A body has two main points of interest. The first point is the body's origin. Fixtures and joints are
attached relative to the body's origin. The second point of interest is the center of mass. The center of
mass is determined from mass distribution of the attached shapes or is explicitly set with b2MassData.
Much of Box2D's internal computations use the center of mass position. For example b2Body stores the
linear velocity for the center of mass.
When you are building the body definition, you may not know where the center of mass is located.
Therefore you specify the position of the body's origin. You may also specify the body's angle in radians,
which is not affected by the position of the center of mass. If you later change the mass properties of
the body, then the center of mass may move on the body, but the origin position does not change and
the attached shapes and joints do not move.
bodyDef.position.Set(0.0f, 2.0f); // the body's origin position.
bodyDef.angle = 0.25f * b2_pi; // the body's angle in radians.
So it seems you can either set the origin, or the center of mass through the MassData.