Giratina was probably the hardest legendary pokémon for me to catch. In my Pokémon Pearl game, Giratina took me a couple of days until I could finally catch it. I mostly tried to use Quick Balls on the first try, but after the first turn of the battles I had with Giratina, Ultra Balls were my best luck. There were many times when I had to soft reset as well in order to catch it. But as I said, Ultra Balls got me to catch Giratina after many turns of using Status Effects on it and getting Giratina's HP to red.
Of course, I could've gone the easy way and use my Master Ball on it, but however, I wanted to save my Master Ball for another legendary I had in mind. There is always cloning the Master Balls in Pokémon Emerald [the safe way] and migrating them to my Pearl version, but I chose not to do so.
As for catching Giratina in Platinum, I haven't reached there yet and hopefully I'll be able to catch it with an Ultra Ball once more.