Fister has had these problems too and my vet recommended Hills S/D for 4-6 months I think, and then to change to Hills C/D. I would suggest you try this, or Royal Canin Urinary S/O, as KAK suggested.

Hills S/D is meant to dissolve the crystals (struvite I think), and C/D is for preventing him to get them.

Make sure you feed him things with low amounts of Calcium, Ash and Phosphorus. My vet also said: Don't even give him ONE shrimp!

Also, be aware that stress can tricker UTI's.

Hope you find something he likes and helps prevent him from getting it.