Question: Let's say I have a triangle given by the three integer vertices (x1,y1), (x2,y2) and (x3,y3). What sort of algorithm can I use to return a comprehensive list of ALL (x,y) integer pairs that lie inside the triangle.

Answer: 
I suppose you have a list of pairs you want to test (if this is not what your problem is about, please specify your question clearly). You should store the pairs into quad-tree or kd-tree structure first, in order to have a set of candidates which is small enough. If you have few points, this is probably not worth the hassle (but it won't scale well if you don't do it).

You can also narrow down candidates further by testing against a bounding box for your triangle.

Then, for each candidate pair `(x, y)`, solve in `a, b, c` the system

```
a + b + c = 1
a x1 + b x2 + c x3 = x
a y2 + b y2 + c y3 = y

```

(I let you work this out), and the point is inside the triangle if `a` `b` and `c` are all positive.
I like ray casting, nicely described in [this Wikipedia article](http://en.wikipedia.org/wiki/Point_in_polygon). Used it in my project for the same purpose. That method scales on other polygons too, including concave. Not sure about the performance, but it is easily coded, so you could try it yourself (I had no performance issues in my project)