Metal roofs, as they only have a few seams. That makes them easier to seal, thus protecting you from the rain.   However, slate roofs are worth considering, as they repel moisture to keep the rain out of your house.