I also live in Iowa, and have had more than my share of other peoples dogs/cats wipping me out of the chicken buisness. What I have learned and the most helpful thing I have learned is this.
According to Iowa law you have the right to protect your livestock (chickens included) you CAN fire a weapon inside the city limits if you are protecting your livestock. I beleive its code 571 or 576? dont' quote me on it, but your local sheriff will know. I know people hate to do it, but if your neighbors won't be good neighbors, .25 cents for a shell is cheaper then being wiped out over and over again by the same cat or dog.. I have lost thousands on birds before I got the gutts to start shooting. I now haven't had a issue for 3yrs.
I had a new neighbor move in about then and thier dog had 6 dead birds in my driveway. I followed the dog home, and knocked on thier door. I ask that they replace the birds and keep thier dog home. They said "It wasn't my dog, she is here".. I said "great.. so when I shoot the stray you won't care.. right" I ended up shooting the dog the next day.. they never said a word and my chickens have been very happy since.
stray cats even cats I know the owners are no exception. I call the owners once. After that.. its over.. I can't afford it.
Your local sheriff can do more to explain the laws, but you have more rights to protect your birds than you may know about.