The Halloween update for Minecraft added an actual function for fishing rods; you can actually catch fish with them now! To do so, you right click and you cast the line.
Can fish be caught in all water tiles, or must they be a certain depth, certain number of tiles together, etc?
Fish can be caught in any body of water. Unlike pigs, cows, or chickens, fish don’t exist until they’re caught, so it doesn’t matter where your water is.
You do need a minimum size body of water so that the lure doesn’t get stuck on a block — as long as the bobber is free-floating, you should be good. I’ve actually managed to cast into water falling from a “spring” block, have the bobber travel up to the top of the falling water, and then catch a fish.