I think this may help linkman
http://files.getdropbox.com/u/1013446/ballangles.cap
left and right arrow aim
mouse moves arrow
left mouse button fires ball
the only event that matters for your purposes is the "on collision" one
I believe that is correct normal based reflection though
basically :
<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/1/10/Reflection_angles.svg/170px-Reflection_angles.svg.png">
normal = angle(object1.x,object1.y,object2.x,object2.y)
angle r = normal - object1.angle (the angle it was moving)
the normal is the angle between the centers of the two objects upon collision
I have to minus 180 in my example so it's facing back outward
then you just subtract angle r from the normal to get angle i
I just noticed as I was typing this though, that your problem might have become complex because of the multiple balls being reflected and not stationary...but I think the same basic rules should apply