Thanks gigi!
It was usefull. I did have to make some modifications to your how-to to make it work for my situation/setup.
Here's what I found (my solution)...
My FTP client is Transmit (Mac OS X). My FTP site is running on a Mac OS X Server running PureFTPD, (an extremely excellent FREE program that makes running a customized FTP server on the Mac a cinch--highly recommended) on the LAN side.
On PFSense --> INTERFACES --> WAN, CHECK Disable the userland FTP-Proxy application (I could not make a connection with it enabled)
PFSense --> INTERFACES --> LAN, CHECK Disable the userland FTP-Proxy application (I could not make a connection with it enabled)
PFSense --> FIREWALL --> Nat, create the rule "if WAN, proto TCP, ext port 21, nat
address 192.168.169.10 (or whatever your FTP server's LAN address is), int port 21"
PFSense --> FIREWALL --> Nat, create the rule "if WAN, proto TCP/UDP, ext port
20000-20050, nat address 192.168.169.10, int port 20000-20050"
PFSense --> FIREWALL --> Rules, automatically created by system during NAT config
Now after doing this, I could connect, but I would get an error message regarding the directory list not being retrieved.

At this point I took a look at the settings for the passive port range on my FTP server. They were blank, so I entered "From: 20000" and "To: 20050", restarted my FTP service, and attempted to connect again with Transmit. It worked!

So the key seems to be setting your FTP server's passive mode range and creating a matching TCP/UDP rule in pfsense.
Hopefully other members will add to this thread when they find what works for them. I was about to give up on pfsense before I discovered this post.
Here's some keywords to help folks find this message in a search: cannot connect ftp problem connection solution