18. On Shabbos, it is permissible to feed those animals and fowl that are being raised on one's property and are dependant on humans for their food. It is, however, forbidden to trouble oneself with feeding those animals that are not being raised on one's property, and are not dependant on humans for their food (1). It is even forbidden to throw food in front of them. Therefore, it is forbidden to feed doves, because they can go out and find food in the field.
One may feed dogs on Shabbos. There is even somewhat of a mitzvah to give some food to owner-less dogs, because we [have a tradition] that G-d had mercy on dogs, since there is little food for them, and [created them] with a digestive process that takes three days (2).
There is a custom to feed birds kernels of grain on "Shabbos Shirah" (the Shabbos on which the public Torah reading includes the song sung by the Jews after the splitting of the Red Sea). This is an improper practice ("eino nachon"), since we are not responsible for feeding these birds (3).
(1) The reason for this prohibition is that it is considered unnecessary exertion ("Tircha Shelo LeTzorech") (Mishna Berura 324:29).
(2) According to the Aruch HaShulchan (324:2), any animal that one knows is hungry may be fed on Shabbos, even if it does not usually depend on humans for its food.
(3) Others disagree and rule that this practice is permitted because it is not exertion for the birds, but rather for ourselves. In other words, since we have a tradition that the birds sang along with the Jews at the Red Sea, we are throwing food to them out of gratitude, in order to remember the joy of the miracle (Aruch Hashulchan 324:3).