Try...
WHERE (((MONTH(start_date) >= MONTH(NOW())) && (MONTH(end_date) <= MONTH(NOW()))) && YEAR(start_date) >= YEAR(NOW()))
That would get you anything from 3/2010.
Or..
WHERE ((MONTH(start_date) >= MONTH(NOW())) && YEAR(start_date) >= YEAR(NOW())))
Would get you events after 3/2010 into the future, and nothing before that.
Or..
WHERE (start_date_var) BETWEEN start_date AND end_date
Simply, where (passed value) is between any event start and end date.
These should produce results. It depends on how you are executing the query. Are you accepting form/url arguments to change dates?
It's confusing though that you want to have all dates that are not expired, yet also want dates that occurred on a specific date. Where are you getting start_date from?