If you have many lake features and island features to match, you may want to perform a spatial join with the target layer being the islands. By spatially joining, you are assigning attributes from a source layer (here lakes) to the target layer based on how the layers overlap/contain/intersect one another. All island features will theoretically be assigned to the lake they fall within.
There is a spatial join function both in the toolbox and in the main interface; the toolbox version gives you a bit more control as to how to perform the join, and how large a radius to consider for each match. I use that if it is a large dataset, i.e. more than a few 1000 points for performance reasons.
If you store the result in a personal geodatabase, you can then go into access if you are licensed and query the result(or you could get the same results from just looking at the attribute table, sorted):
select [lake], [island]
order by [lake],[island];
You should get a list of all the islands, preceded by which lake it falls in.