Here is a short list of easily found Pokemon in the wild which you can battle for EVs. Next to each Pokemon is a number which tells how many EVs you earn for battling that Pokemon. There are other Pokemon you can battle for EVs as well but I'm only listing the ones you can easily find in the wild or a lot of trainers in-game have(excluding Elite Four).
Hit Point EVs: Marill(2), Whiscash(2), Wurmple(1), Shroomish(1), Wynaut(1), Whismur(1)
*Rusturf Tunnel has nothing but Whismur, making it an ideal spot to train for HP EVs
Attack EVs: Mightyena(2), Sharpedo(2), Solrock(2), Baltoy(2), Poochyena(1), Goldeen(1), Machop(1), Carvanha(1), Shuppet(1)
*In Sapphire, some floors of Mt.Pyre has nothing but Shuppets, making it an ideal spot to train for Attack EVs
*no ideal spots available for Ruby
Defense EVs: Silcoon(2), Cascoon(2), Lairon(2), Seedot(1), Nincada(1), Sandshrew(1), Clamperl(1)
*no ideal spots available for both versions, as anywhere with Pokemon that gives defense EV is never the most common Pokemon available in that area
Speed EVs: Linoone(2), Zigzagoon(1), Tailow(1), Wingull(1), Magikarp(1), Zubat(1), Meditite(1), Electrike(1)
*the Underwater Cavern has nothing but Zubats and Golbats, making it an ideal place to train for speed EVs
Special Attack EVs: Magnemite(1), Oddish(1), Numel(1), Spinda(1)
*battling Spinda is by far the easiest way to earn Sp.Attack EVs. Though that route also has some Skarmorys (defense EV) and Sandshrew (defense EV), Spinda is very common and Sp.attack is still easy to find
Special Defense EVs: Lombre(2), Tentacruel(2), Lotad(1), Tentacool(1), Swablu(1), Kecleon(1)
*inside the Abandoned ship has nothing but tentacool and tentacruel, making it quite an ideal spot to train. However, battles aren't so frequent there, so you may want to stick with Swablu