I’m new to Blender! If I create a mash and move it to the side and reposition the object center to world origin then mirror, works fine. However if I rotate the mesh first then try to mirror across any world axis the mesh is mirrored across the local axis instead. What am I missing?
You are not missing anything that is how it works.
The Mirror modifier mirrors on the objects axis, if you have rotated the object in object mode you have also rotated its axis.
If you want the default cube to look like a diamond from the front view it is good practice to rotate the cube in edit mode, that way you have not rotated its origin and can mirror as you expect on the different axis’s.
Another thing you could do if you do not want to start over would be to “apply” the objects rotation in object mode (object menú-apply-rotation) then you will see that the object mirrors as you expect.
You will also find that scaling the object in object mode sometimes has undesirable effects it is best to model the object to its desired scale, a .5m long cube is not the same thing as 1m cube scaled to .5!
Put an Empty at the origin and use it as a Mirror Object in the modifier.