About 3 hours but you're struggling to find a carrier direct from JFK. American do a few departures a day, both American and Continental do departures from Newark/NJ and American also have the odd departure from La Guardia.
United will take 4 hours via Dulles, but I've yet to encounter a nastier airport than Dulles!!
Continental will take you from JFK via Houston (!) in 4 hours, or via Orlando in 3hr 30mins.
AA actually do 5 departures a day from JFK to MIA so I don't think you will struggle at all!
For example tomorrow you could catch the:
0545, 0745, 1200, 1425, or the 1855 - all direct and all taking 3hr 5mins.