Using cursors is a controversal topic. As a former developer, that is the way I thought about processing data at one time. I gave a talk to a VB group a couple of years ago where I compared using cursors, correlated subqueries, etc., to other techniques to show the performance differences. A lively discussion ensued as the audience members were shocked that the ways they were updating and retrieving data might not be the best.
I recently came up with an analogy to explain why processing one row at a time is generally a bad idea. Suppose you have a 10 item grocery list. What are the steps to get the groceries to your pantry? If we process one item at a time, it will look something like this:
for each item in list walk to the car get in the car start the car drive to the store stop the car walk into store locate food package that matches item retrieve food package from store shelf cross off list pay for package leave store walk to the car get in car start car drive home stop car get out of the car walk in house with package put package awaynext item
With the high gasoline prices, you can see why this might not be a good idea.