Tile-based forward rendering was first debuted in AMD's Leo Demo in early 2012. It works by generating a per pixel or per tile list of lights that could possibly affect pixels in those tiles. Unlike traditional forward rendering, the advantage of this technique is that you can have many lights without multiple passes. While deferred rendering also solves this problem, this algorithm also handles transparency out-of-the-box, allows the use of MSAA and different BRDFs, without having to do multiple passes or post-processes.

I've written an article describing my implementation here.

This demo runs at 18ms with 37 lights on my modest ATI Radeon HD 5700 at 1080p with 8x MSAA (my card can't do 16x - rubbish).