First you or someone needs to determine if the door frame itself is out of square. It sounds like it is and the house has probably settled a little and caused this to happen. The correct fix is to take out the door frame and reinstall it square and plumb using appropriate shims. Door frames can be removed quite easily using the right tools. The main tool for this job is a reciprocating saw like a "sawzall." The first step is to remove the trim from both sides of the door and the run the sawzall blade down each side. It will just cut through the nails holding the frame in place. Remove the cut off nails and put the door back in place. Square it up as I said and then re-hang your door. The door may need a little planing or sanding to make a perfect fit.
Hmmmm... this is a little peculiar. What next needs to be verified is the corners being "square." You will need a carpenters square which is a metal triangle device about 8" in length. If you don't have one they are quite inexpensive at home improvement stores. The square would be held in the upper corners against the side and top. This will tell us quickly whether or not the door frame has gotten out of whack. Also I would like you to do one more verification of this frame. Measure from diagonally from a top corner to the opposite bottom corner. Do the same for the other diagonal and check for any change in the two measurements. If the frame is "true" both measurements will be exactly the same or within 1/8 th inch.
If all this checks out okay we will then deal with the door hanging itself.