This article investigates a novel multi-stage approach for spoken language understanding (SLU), with an application to a pioneering Thai spoken dialogue system in a hotel reservation domain. Given an input word string, the system determines a goal and concept-values by three-stage processing; concept extraction, goal identification, and concept-value recognition. The concept extraction utilizes weighted finite state transducers (WFST) to extract concepts from the word string. Given the extracted concepts, a goal of the utterance is identified using a pattern classifier. Within a particular goal, the necessary concept-values are recognized from the WFST outputs produced in the concept extraction stage. A new logical N-gram model, which strategically combines the conventional N-gram parser with a regular grammar, is evaluated for concept extraction and concept-value recognition. Several classifiers are optimized and compared for goal identification. An advantage of the proposed SLU model is that it can be trained by a partially annotated corpus, where only the relevant keywords and the goal of each training utterance are required. Although the proposed model is evaluated only on the Thai hotel reservation system, the SLU itself is general and it is expected to be applicable for other languages once training data is available.