Modular methods for Diophantine problems