Most run to respawn room if they see a salvo of incendiaries coming at them, so I simply jump from the battlement, then run into the main entrance, shooting incendiary rockets at the enemy battlement the entire time. Soldiers Soldiers are one of the most difficult classes to fight, but it CAN be done. Then keep flaming them while walking away, usually they'll shoot everywhere but at you while they're blinded by the flames. In my opinion, the toughest class to kill as a Pyro. The biggest problem, but not a curable one.
Some people have a tendency to spam when they are on fire.
Using the same trick mentioned for dealing with soldiers can work. Though many demos will shoot grenades up close and kill themselves, this can kill you too. But I still get a sense of satisfaction from killing one. Running up to a HWGuy and trying to kill him IS suicide. This makes it easier to kill him since he has no idea where you are.