The mirroring is dependant on your pivot mode. You can easily alter it with . and , keys or by using the 3D viewport header. Set 3D cursor to center of the half. You can do this by snapping (shift-s) 3D cursor to some vertex there. After you have got 3D cursor there, make sure you have the pivot mode set to 3D cursor and after that do shift-d, m, w, remove doubles.
Another option (which I would recommend instead) is to use the Mirror Modifier. Set 3D cursor following instructions above to the center of the half. After that go to Object Mode and set the object’s center to 3D cursor by using “Centre Cursor” found in Mesh part at Editing panel in the Buttons Window. Now that we have center of the object in proper place, add Mirror modifier to the object using Modifier part also found in Editing panel. Set it to Axis you want to use to Mirror.
You can add many Mirror modifiers to the object easily. Also you can apply them. Applying will convert the result to real mesh.