As a Spanish teacher, I've always taught that "ahí" means there (nearby the speaker), "allí" means there (in the general vicinity of the speaker), and "allá" means there (farther away or, in relation to something that is "allí", beyond it).
--¿Dónde está mi toalla? (Where's my towel?)
--Está ahí, a tu lado. (It's there, at your side.)
--No es mía... ah, allí está en la cama. (It's not mine...oh, there it is on the bed)
--Sí, ésa es tuya, y la mía está allá en la ropera. (Yes, that one is your's, mine's over there on the dresser.)
--