Serialization & deserialization, for instance. Macros are great for generating ser/de hooks automatically.
Thing is, other languages do this with metaprogramming or explicit codegen. Everyone needs metaprogramming sometimes—that's why everything supports it, actually.