All right, I had a simple tile engine in DX running at about 60 FPS, and after using this technique, it ran at 800 FPS!!!

VB Code:
  1. Dim TileX as Long, TileY as Long
  2.  
  3. TileX = 0
  4. TileY = 0
  5.  
  6. For X = 0 To 19
  7.   For Y = 0 To 14
  8.     'Here, the coordinates where you should blt to are NOT X*TileWidth and Y*TileHeight, but TileX and TileY. In this example, you're avoiding 600 multiplications with additions so it's a LOT faster :)
  9.  
  10.     TileY = TileY + TileHeight
  11.   Next Y
  12.  
  13.   TileX = TileX + TileWidth
  14.   TileY = 0
  15. Next X

Try it, maybe the FPS won't be the same, but it will at least be 1000% faster than the old method