Straight out of Books Online, but i believe it answers the first part of your question !!
HAVING
Specifies a search condition for a group or an aggregate. HAVING can be used only with the SELECT statement. It is usually used in a GROUP BY clause. When GROUP BY is not used, HAVING behaves like a WHERE clause.
By aggregate Function, if you mean in line function, which return a single Value, then Yes i believe that you can !
If you are taking about SQL in built function Like COUNT or AVG, then YES once again you can do this !