I'm not aware of any tool that does this specifically.
One easy way to burn coins would be to send them to a junk bitcoin public address.
To convince people the public address is indeed junk
Generate it with a public formula relying on crypto hash function :
truncateToCompressedPublicAdressLength( sha512( "anything : for example the cause for which you are burning the coin" ) )
Generating the key from its compressed representation should give a 'valid' (representing a point on the elliptic curve) public address, with a probability > 0.5, so you just have to twiddle a few bits if the key is not valid.
The address would be considered junk by design, provided you trust sha512 and bitcoin.
You can even let them choose freely the last few bytes of the public key (after the hash was applied), to convince them even more you can't know the associated private key.
Blog article about people hiding data into the blogchain:
You may find information relative to proof of burning: https://en.bitcoin.it/wiki/Proof_of_burn