The best suited technique depends on how you want the effect to look and how much processing time you’re able to dedicate to it.
For a good performance/quality balance, you could consider the following:
Particle effects: Use particle effects to create foam where the water splashes, e.g. where solid objects intersect the water
Amplitude based foam: Render a foam texture on the water’s surface when the height of a wave is beyond a threshold
Naughty Dog gave a good presentation on water effects at GDC 2012 (slide available here), where they compared a number of different techniques and discussed how well suited they are for different aesthetic results.