Something like this:
FindDate(2012, "January", DayOfWeek.Monday);
public static DateTime FindDate(int year, string month, DayOfWeek day)
{
DateTime lastDay = new DateTime(year, DateTime.ParseExact(month, "MMMM", CultureInfo.CurrentCulture).Month, 1).AddMonths(1).AddDays(-1);
DayOfWeek lastDow = lastDay.DayOfWeek;
int diff = day - lastDow;
return lastDay.AddDays(diff).Date;
}