If the attack pattern is to crash a specific type of service or subvert it, a firewall can prevent a DoS attack.
Put if DoS attack objective is "fill the pipe", nothing can be done at client side. Just ISP can help on that case.
BTW, DoS attacks "fill the pipe" arent common, because is hard to get a "zombie" big enough to have a huge BW to attack someone. Nowadays, the common attack is reflect DDoS or a bot DDos.