Geary's UI is GTK+ 3 based. The folder list (left column) and conversation list (middle column) are Gtk TreeViews. The conversation viewer and email composer are both WebKitGTK WebViews, so that's all HTML and CSS you're seeing.
GTK+ and WebKitGTK both provide C interfaces. There's standard bindings for many other languages, including Vala, Python, C++, etc.
For the most part the toolbars, dialogs, account management windows, etc. were built using Glade. The cool thing about Glade is it saves your UI as an XML file which can be loaded into any GTK+ app, regardless of the language it's written in.
Even if you don't write your application in Vala I'd encourage you to look at the Geary source if you'd like to see how things work since GTK is pretty similar in any language. You can browse the source online here:
Hope that's enough to get started! If you have any other questions about the Geary UI, I'd be happy to help.