In HeartGold, Lugia is at lv70, isn't it?
At lv70, Lugia knows Aeroblast, Punishment, AncientPower and Safeguard. You might want to bring in a Steel-type with good Special Defence, as it will resist all of Lugia's offensive moves. Alternatively, use any Pokemon with very high Special Defence, a sleep-inducing or paralysing move and possibly a healing move.
Be wary of Safeguard! It makes it more difficult to use sleeping moves to capture Lugia.
(Also, despite Lugia's preferred habitat at the bottom of the sea, Dive Balls will be as useless as regular Poke Balls.)
....And what about Ho-oh?
Well, to take it down in HeartGold, the best course of action would be this:
1. Bring along a Pokemon with good Attack and Special Defence, with a sleeping move and False Swipe
2. Put Ho-oh to sleep and bring its HP down to 1
3. Switch to a Blissey with Sing/Thunder Wave and Softboiled, or similar (you need a special sponge for this one!)
4. Subject Ho-oh to a barrage of Ultra or Dusk Balls
5. If you're using sleep to make it easier to catch, you'll need to put it back to sleep when it wakes up. If you're using paralysis, you may need to soft-reset if Ho-oh runs out of PP
6. Keep going until Ho-oh finally succumbs. Gotcha!
At lv70 in SoulSilver, Ho-oh also knows Safeguard, Punishment, AncientPower and its signature move (Sacred Fire). Unlike Lugia, however, Ho-oh at lv70 can counter Steel types with its signature move.
Again, you'll need a Pokemon with high Special Defence and a sleeping or paralysis move, and preferably a healing move as well.
...At least, that's the technique I'll be using.