The local controller did not visually scan the runways and ensure that the E145 had crossed runway 24L prior to issuing a takeoff clearance to the DH8, did not ensure separation between the two airplanes, and did not cancel takeoff clearance for the DH8 in a timely manner.