In similar questions I have mentioned the use of momentum exchange, much like spacecraft get a boost by taking some momentum from a gas giant planet.
So long as you have a supply of asteroids and aim them properly, you can move any size of object, provided you have time and energy to do so. In the case of any planet in the Solar System, the orbit of the asteroids should be calculated so they can unfurl a solar sail after the flypast of the planet and use solar energy to come back around for more flypasts. Since the ratio of mass between the planet and the asteroid is very lopsided, there will need to be a vast number of passes to move the planet around.
However, this is a long and rigorous process. Paul Birch, a writer who published extensively in the British Interplanetary Society, had some interesting ideas of how to move planets around relatively quickly (@ 30 years). The full details can be found in the paper "How to move a Planet", but the short version is to fling a high velocity mass stream at the planet. A "catcher" device reverses the stream of the pellets and sends them back to the launcher. In Birch's paper, the mass stream is accelerated using energy from a "light sail windmill", but other means can be imagined as well.
Paul Birch's planet moving scheme
Because the amount of energy being used is much higher and concentrated in a stream of high speed pellet moving across the solar system, there are obvious issues (like calculating the stream's movement so you don't hit any planets that are in the way), and ensuring the catching apparatus on the planet does not malfunction (that high speed stream of pellets is still going to hit the planet, juts not in the controlled fashion you want). Moving Venus to Earth's orbit, for example, was calculated to require 8.4X10^34J, "corresponding to 0.2% of the Solar luminosity over 30 years".
Larger planets and even entire stars can be moved in this fashion, but the scale increases enormously, both in total energy required for the job, and the amount of time needed to move the planet. Birch suggested coupling multiple bodies together using these "dynamic compression members" to make the job easier and requiring less energy from a single body, but this of course increases the number of calculations required and projects high speed, high energy streams of particles across the entire solar system, or indeed across interstellar space.
Tapping into these sorts of high speed pellet streams could also provide an easy method of powering large spacecraft without needing excessively large engines, but the issue once again is to ensure the stream does not destructively interact with the ship.