Use a dusk ball and only do your catching after 8PM (this may vary depending on game/generation). it also works in caves: this will increase your catch rate to 3.5 (ultra balls are only 2X). the other alternative is to use soak (gen V) or a combo of skill swap/colour change (Kecleon)/water attack to change the wild Pokemon to a water type and use a net ball (3X catch rate). Putting it to sleep/freezing it gives an extra multiplier, while PRZ/PSN/BRN will give 1.5X. Lastly, use false swipe to guarentee 1HP (use foresight first or a Pokemon with scrappy for ghosts, as false swipe is a normal attack and will otherwise miss).
best chance for a catch: reduced to 1HP and asleep, using a dusk ball at night.
there is one exception, and that's roaming legendaries: get them to 1HP and asleep, then run. Find them again and they should still be asleep and at 1HP. The only pokeball other than the master ball with a better catch rate is the quick ball with a massive 4X catch rate: BUT it only works like this on the VERY FIRST TURN. After that, it's just a pokeball