Because we moved from GSM and its original set of frequencies to 3G and (usually) a new set of frequency bands. The noise was caused by a beat frequency between the ring channel and the call/data channel. Changing either the coding scheme (so you don't get anything like a tone as the beat) or the channel separation (so the beat isn't in audio range) causes it to go away.
Nah, the frequencies are stil around there, they're all too high to hear, but GSM used TDM - time division multiplex.
To simplify, up to 7 users (+1 timeslot for signalling) share the same channel/frequency, but each of them is allowed to transmit only 1/8 of the time (even less, due to guard intervals). This basically means, that your phone transmitted for a bit over 0.5 milliseconds (577us), then waited quietly for 7 more intervals like that for other devices to transmit, then your phone transmitted again, and the affected speakers "buzzed" because of these 577ms bursts of power every 4.616 milliseconds (this causes a buzz in the frequency range we can actually hear).