Basically, in active mode during transfers the client will sometimes listen on a random port and have the server connect to that port and start sending data. If you are behind a firewall the inbound connection from the FTP server fails, unless the firewall is capable of snooping on the traffic, and opening the incoming port.
Since the listening port is chosen by the client behind the firewall randomly, you would have to open every port for this to work. Obviously that is not a solution. However many FTP applications can be configured to use a small set of ports for active connections. You need to configure your FTP client to use a fixed range of ports and then add iptables rules to allow inbound connections to those ports.
In the end, I strongly recommend passive mode FTP. The only exception is if you have a really old FTP server that doesn't support it.