It's a pain in the ass when you have to use Latex. Luckily 5 of my 7 speakers were in Black walls/ceilings so I used a flat black spray paint. The other 2 were in columns and required latex. Use many, many, many very light coats otherwise you'll plug up the grills. If you can find a spray paint close to your wall color use it.
Also make sure to remove any possible backing on the grills. I have some Klipsch inwall's that have a felt like material on the back part of the grill. It wasn't removable so I tried to roll on the paint with a foam roller. It didn't turn out great since I had to go lightly to not clog up the felt in the holes. It left the inside of some of the hole perferations not covered w/ paint.
What I have found works the best out of anything is VHT, and Duplicolor makes vinyl & fabric spray dye. Its not a paint but an dye that soaks into the material (IE plastic, fabric, grills of speakers, ect..) and so if/when scratched the color doesn't go with it.
I used water to dilute the paint and did lots of thin coats. I actually dumped the mixture into a large casserole dish and dipped the grilles into a bath of the mixture over and over. It actually looks decent, but unfortunately my wife painted them the first time and clogged about 1/3 of the holes so I had to use a paperclip to poke each one though. Even now, I can still see some areas took better than other when viewed off axis, but I am the only one that really notices, or so everyone I ask says.