Nope! Only a Master Ball can catch a Pokemon 100% of the time.
Catching a Pokemon is all in a big equation that takes into account Max HP, Current HP, status ailments, and the Pokeball that's thrown. Always find clever ways to whittle down a Pokemon's HP as low as it can go, to make catching it much easier.
A great Pokemon to help you catch legendaries in Gen IV is using Parasect, which learns False Swipe by TM, and Spore at around Lv.25 (?). Spore had 100 Accuracy, so will almost ALWAYS put the foe to sleep, and False Swipe will always leave the foe with at least 1 HP left.
You see, a sleeping Pokemon with one HP left is, despite the Pokeball being thrown, is the easiest kind of Pokemon to capture. For Pokeballs, it's totally dependent on the Pokemon and situation.
Trying to catch Kyogre? Pack Net Balls for a x4 catch rate. Trying to catch Mewtwo or Giratina? Pack some Dusk Balls because of the caves. Trying to catch a Steel-type, like Heatran and Dialga? Use Ultra Balls to stall, then use Timer Balls for a massive Catch Rate! The possibilities are endless, and catching a Pokemon is ONLY as hard as you make it.