If an astronaut or cosmonaut at the ISS becomes separated and floats away accidentally during an EVA, is there a way to rescue him or her?
Yes, there are at least two ways an untethered astronaut could be rescued.
The SAFER system is a self-contained jetpack with a tiny amount of propulsive capability - just enough to get you back to something to grab if you somehow became untethered. (The Wikipedia article isn't 100% clear whether this is used on every EVA -- in particular I'm not sure if Russian EVAs use it.)
If an astronaut or cosmonaut was drifting away with no self-propulsion available to return to the station, one of the Soyuz capsules could undock and go fetch them. I'm not sure how long it normally takes one to be made ready, but I imagine that in an emergency situation the checklists could be cut short. The Soyuz are very maneuverable, and the forward orbital module can act as an airlock.